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

undefined method `object2_path' for #<#Class:0x000000040b2fa8>:0x000000029c8810>.

配置/路由.rb
resources :object1 do
  resources :object2
end

View /object2/_form.html.haml:
= simple_form_for [@object1, @object2] do |f|

如果我更改 View 以添加特定的 url,如:
= simple_form_for [@object1, @object2], :url => object1_object2_path, do |f|

然后编辑有效,但新的无效。

如果我将 object1_object2s_path(索引路径)设置为 url 而不是 object1_object2_path,则两个 View 都被呈现但编辑失败,因为表单指向错误的 url(这很明显,这只是我尝试的一部分)。

最佳答案

在这种情况下,@object1 似乎是 nil:

simple_form_for [@object1, @object2] do |f|

因此 rails 尝试使用 object2_path 而不是 object1_object2_path 。尝试检查 @object1 的值。

关于ruby-on-rails - 简单形式的Rails 3.2嵌套路由,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10792407/

10-10 03:42