2011-08-31 53 views
1

我有一個Doc類與腳手架發電機創建的標準路線。在代碼中,我使用Rails 3集成測試崩潰(模型)_path(@instance)幫手

docs_path(@doc) # => /docs/7 

它工作正常。

在我的集成測試我使用:

get docs_path(@doc) #=> /docs.7 

不工作都很好。

對於使用軌道模型的標準路線的其他控制器,這也是一樣的。

使用:

get "/docs/7" 
在集成測試代碼工作正常

,但是當我嘗試處理使用「_path」或「_url」助手頁面,然後將其軋液那些以類似的方式,這會導致錯誤。

注意:當我在開發環境中打開筆記本電腦上的實際頁面時,此代碼正常工作。

:當我嘗試通過編寫測試來做正確的事情並且測試引入在正常環境中不存在的錯誤時,這是​​非常令人沮喪的。你怎麼處理那件事呢???

使用rails 3.0.8。

下面是rake.routes

docs  GET  /docs(.:format)   {:action=>"index", :controller=>"docs"} 
      POST  /docs(.:format)   {:action=>"create", :controller=>"docs"} 
new_doc  GET  /docs/new(.:format)  {:action=>"new", :controller=>"docs"} 
edit_doc GET  /docs/:id/edit(.:format) {:action=>"edit", :controller=>"docs"} 
doc   GET  /docs/:id(.:format)  {:action=>"show", :controller=>"docs"} 
      PUT  /docs/:id(.:format)  {:action=>"update", :controller=>"docs"} 
      DELETE /docs/:id(.:format)  {:action=>"destroy", :controller=>"docs"} 

爲什麼這樣做相關線路?我可以修復它嗎?

回答

2

「標準」路線將是它是一條單獨的命名路線:doc_path。您正在使用docs_path。如果要鏈接到特定的文檔,請使用單數名稱,如果要獲取這些文檔的列表,請使用複數名稱。

+0

就是這樣。謝謝 – CHsurfer