Rails子资源路由错误

时间:2014-10-25 02:19:35

标签: ruby-on-rails routing rails-routing nested-resources

我在使用Rails应用程序中的子资源时遇到问题。 我的目标是拥有路线(示例应用),例如

/人/ 1 /笑话/新 /人/ 1 /笑话

我的笑话形式中的form_for行正在调整路由错误

undefined method `jokes_path'

在此处查看所有源文件:https://gist.github.com/maclover7/14c9d6eaa0c6731a3ecf

1 个答案:

答案 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命令查看应用程序的路由表并找出它生成的内容