我在使用Rails应用程序中的子资源时遇到问题。 我的目标是拥有路线(示例应用),例如
/人/ 1 /笑话/新 /人/ 1 /笑话
我的笑话形式中的form_for行正在调整路由错误
undefined method `jokes_path'
在此处查看所有源文件:https://gist.github.com/maclover7/14c9d6eaa0c6731a3ecf
答案 0 :(得分:0)
请注意,将jokes
资源放在people
下作为子资源后,jokes
的路由帮助程序将更改为user
前缀,如下所示:< / p>
user_jokes_path # => /people/1/jokes
new_user_jokes_path # => /people/1/jokes/new
edit_user_jokes_path # => /poople/1/jokes/:id/edit
另请注意,您需要将user.id
作为参数的一部分传递给路径,因此如果您使用user_jokes_path
,则需要通过传递user
对象来调用它,因此如果您将用户记录存储在@user
变量中:
<%= link_to 'jokes', user_jokes_path(@user)%>
最好的方法是使用rake routes
命令查看应用程序的路由表并找出它生成的内容