嵌套资源的控制器路径 - 未定义方法`<controller> _path'</controller>

时间:2010-12-24 19:06:43

标签: ruby-on-rails-3

我在/ users / 2 / friends / new上显示我的表单时遇到问题。我收到了

undefined method `friends_path' for #<#<Class:0x21f0c14>:0x21ef364>

这是表单的开头

<% form_for(@friend) do |f| %> 

朋友控制器

def new
     @user = User.find(params[:user_id])
     @friend = @user.friends.build
end

这是路线

resources :users do
       resources :friends
end

“rake routes”的相关路径

users/:user_id/friends/new(.:format)      {:controller=>"friends", :action=>"new"}

非常感谢任何帮助或见解。这是我的第一个rails 3应用程序。

1 个答案:

答案 0 :(得分:47)

尝试:

user_friends_path(@user)

这是因为它是一个嵌套资源: http://guides.rubyonrails.org/routing.html#creating-paths-and-urls-from-objects

<强>更新 至于表格,你可以这样做:

<%= form_for [@user, @friend] do |f| %>