Rails 3.1 has_one嵌套资源:路由不生成“所有”路径
我有一个has_one关系:
# supplier.rb has_one :presentation ... # presentation.rb belongs_to :supplier ...
以及它们的以下嵌套路由:
# routes.rb resources :suppliers do resource :presentation end
运行rake routes
给出:
supplier_presentation POST ... {:action=>"create", :controller=>"presentations"} new_supplier_presentation GET ... {:action=>"new", :controller=>"presentations"} edit_supplier_presentation GET ... {:action=>"edit", :controller=>"presentations"} GET ... {:action=>"show", :controller=>"presentations"} PUT ... {:action=>"update", :controller=>"presentations"} DELETE ... {:action=>"destroy", :controller=>"presentations"}
为什么show_helper没有show动作?
我可以覆盖问题,例如:
resources :suppliers do resource :presentation, :except => :show do get "" => "presentations#show", as: "presentation" end end
给出路线:
presentation_supplier_presentation GET ... {:controller=>"presentations", :action=>"show"}
但我们现在都不是处理它的正确方法..
有什么建议?
–
(编辑)的
supplier_presentation_path(@supplier)
确实有效,但为什么? …在我的shell上执行rake routes
时不会出现…
我真的不知道为什么当你做rake routes
时它没有显示但是你是否尝试使用你的代码来执行supplier_presentation_path(@supplier)
? 它应该根据您的路线工作。
它永远不会对你有用。 试试这个:
link_to "Presentation", [@suplier, @presentation]
要么
link_to "Presentation", suplier_presentation_path(@suplier, @presentation)