两次嵌套资源表单_For Issue

问题描述

| 我有一个双重嵌套资源:
 resources :companies do 
    resources :orders do
      resources :comments
  end
 end
尝试在我的订单显示视图中包含一个表单以创建评论时遇到问题。这是我尝试过的:
<%= form_for([@order,@order.comments.build]) do |f| %>
但这给我没有方法错误。 您有机会推荐解决此问题的最佳方法。     

解决方法

        您还必须定义公司。如果您写
rake routes
,您会发现您没有
order_comments_path
,因为它是双嵌套的,所以您会发现诸如
company_order_commments_path
这样的东西,它至少需要两个参数,分别是
company_id
order_id
。因此,如果您确实想使用此3级嵌套程序资源,则必须在表单路径中添加一个“ 7”变量。喜欢:
<%= form_for([@company,@order,@order.comments.build] do |f| %>
但是在大多数情况下,同时定义ѭ9和ѭ10来标识ѭ10是没有用的,因此另一个选择可能会更好地为
orders
comments
分别添加另一条路线,这很有意义。 在你的routes.rb中
...
resources :orders do
   resources :comments
end
...
因此,您无需指定
company
就可以操纵ѭ12manipulate。同样,在大多数情况下,通过定义3级嵌套路由也不会获得任何重要的优势。