rails将对象传递给partials,然后传递给另一个partial

时间:2012-04-01 09:46:24

标签: ruby-on-rails partials

我想知道如何将一个对象传递给一个部分,然后又传递给另一个部分? 我跟随迈克尔哈特尔书,这是一个可选的练习,但我已经超级卡住了。

如果我有...

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

<% end %>

从书中说,它使用的哈希值等于对象,键等于我们想要的部分变量的名称。所以这意味着_fields.html.erb中的关键对象&#39;应该存在,它应该具有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>

为什么抛出这个?我以为我可以将密钥称为&#39; object&#39;。

另外,我一直坚持要取代??????用。为了复制上面的错误,我拿出了??????但它会从下一个部分说法&#39;对象&#39;中引发另一个错误。未定义。我不能使用像f.object这样的东西,因为f不再存在。如何才能将值传递给下一个部分?

非常感谢=)

1 个答案:

答案 0 :(得分:2)

嗯,你传递的是object: f.objectf.objectUser。因此,您尝试拨打object.label,但User没有label方法。如果您传入object: f.object, f: f,那么在您的部分内容中,您可以拨打f.label