2011-08-31 24 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