2012-05-29 20 views
3

我有一个object1和object2之间的嵌套路由。当我尝试编辑对象2我得到了一个错误:简单形式的Rails 3.2嵌套路由

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

的config/routes.rb中

resources :object1 do 
    resources :object2 
end 

视图/对象2/_form.html.haml:

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

如果我更改视图以添加特定网址,例如:

= simple_form_for [@object1, @object2], :url => object1_object2_path, do |f| 

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

如果不是object1_object2_path作为url我设置object1_object2s_path(索引路径),两个视图都被渲染,但编辑失败,因为表单指向错误的url(这很明显,只是我做的尝试的一部分)。

回答

13

看来@object1在这种情况下nil

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

所以轨道尝试使用的object2_path代替object1_object2_path。尝试检查@object1的值。

+0

你是对的。对于编辑操作,我没有设置@ object1。 BTW我不知道这个轨道的行为。谢谢米哈伊尔。 – Seoman