2012-04-01 135 views
0

我想知道如何将对象传递给partial,然后又传递给另一个partial? 即时追随迈克尔哈特尔书,这是一个可选的练习,但一直是超级卡住。rails将对象传递给partials,然后传递给另一个partial

,如果我有一个..

<%= form_for(@user) do |f| %> 
    <%= render 'fields', object: f.object %> 

<% end %> 
从书

,它说要使用一个哈希等于物体和关键等于我们要在局部变量的名称值。因此,在_fields.html.erb手段,重点“对象”应该存在的,它应该具有的f.object

<%= render 'shared/error_messages', object: ?????? %> 

<%= object.label :name %> 
<%= object.text_field :name %> 

<%= object.label :email %> 
<%= object.text_field :email %> 

的值,但是当我尝试检索的关键,我上线的错误

<%= object.label :name %> 

它说

undefined method `label' for #<User:0x007f86000110c0> 

为什么它扔了吗?我以为我可以把钥匙作为“对象”来引用。

此外,我一直卡在什么取代??????用。复制上面的错误,我拿出了??????但它会抛出另一个错误,从未来的部分说'对象'是未定义的。我不能使用像f.object之类的东西,因为f不再存在。我怎么能得到的价值传递到下一个部分?

非常感谢=)

回答

2

嗯,你正在传递object: f.objectf.objectUser。因此,您尝试拨打object.label,但User没有label方法。如果您通过object: f.object, f: f,那么您可以拨打f.label

+0

这是完全有意义的。谢谢! 我最终填写了????????与'对象',一切正常。非常感谢! – Sasha 2012-04-01 10:07:43