Rails 3.2简单表单上的嵌套路由

Seo*_*man 3 ruby-on-rails nested-routes ruby-on-rails-3 simple-form

我在object1和object2之间有一个嵌套路由.当我尝试编辑对象2时出现错误:

undefined method `object2_path' for #<#Class:0x000000040b2fa8>:0x000000029c8810>.
Run Code Online (Sandbox Code Playgroud)

配置/ routes.rb中

resources :object1 do
  resources :object2
end
Run Code Online (Sandbox Code Playgroud)

视图/ Object2的/ _form.html.haml:

= simple_form_for [@object1, @object2] do |f|
Run Code Online (Sandbox Code Playgroud)

如果我更改视图以添加特定的URL,例如:

= simple_form_for [@object1, @object2], :url => object1_object2_path, do |f|
Run Code Online (Sandbox Code Playgroud)

然后编辑工作,但新的没有.

如果不是object1_object2_path作为url我设置了object1_object2s_path(索引路径),则会渲染两个视图但是编辑失败,因为表单指向错误的URL(显而易见,这只是我尝试的一部分).

Mik*_*Mik 13

在这种情况下似乎@object1nil:

simple_form_for [@object1, @object2] do |f|
Run Code Online (Sandbox Code Playgroud)

所以rails尝试使用object2_path而不是object1_object2_path.试着检查一下它的值@object1.