Rails 3 - 嵌套路由“NoMethodError”尽管列在rake路由中

时间:2011-05-19 20:02:23

标签: ruby-on-rails ruby-on-rails-3 routes nested-routes

好的家伙所以我有一个这样的嵌套路线:

resources :apps do
    resources :forms
end

在我的表单索引中,我有这个块:

<% @forms.each do |form| %>
  <tr>
    <td><%= form.app_id %></td>
    <td><%= form.title %></td>
    <td><%= link_to 'Show', app_form(@app,form) %></td>
    <td><%= link_to 'Destroy', form, :confirm => 'Are you sure?', :method => :delete %></td>
  </tr>
<% end %>
</table>

该页面在app_form行上抛出NoMethodError;但是我认为我正在传递应用程序和表单(我也尝试传递@ app.id)。调用rake路线......甚至显示路线:

app_form GET    /apps/:app_id/forms/:id(.:format)      {:controller=>"forms", :action=>"show"}

非常感谢任何帮助!

2 个答案:

答案 0 :(得分:5)

请尝试使用app_form_path(@app, form)(您需要将_path附加到路线名称上。)

答案 1 :(得分:0)

不仅嵌套路线,对于您使用的每条路线,您需要在路径名后追加_path或_url。
所以在这里juz尝试app_form_path(@ app,form)或app_form_url(@ app,form)