Rails嵌套在命名空间内的资源

时间:2011-11-18 06:25:39

标签: ruby-on-rails routing activeresource

我认为这是:

form_for [:support, @thread, @reply], url: support_thread_replies_path do |f|

这是我的routes.rb

namespace :support do
  resources :threads do
    resources :replies
  end
end

这不起作用:

  

路由错误

     

没有路线匹配{:action=>"new", :controller=>"support/replies"}

如果我从url:中删除form_for密钥,当表单帮助程序尝试调用未定义的路径帮助程序方法时,我只得到NoMethodError

即使我在示例视图代码中从数组的开头删除了:support符号,我也得到了相同的路由错误(使用:support建议在此处回答另一个类似的问题)< / p>

1 个答案:

答案 0 :(得分:5)

Thread的实例作为路径助手中的第一个参数传递:

support_thread_replies_path(@thread)

这样Rails知道你正在创建一个新的回复线程。

我相信你应该能够在没有:url密钥或路径助手的情况下做到这一点。