2012-04-01 7 views
0

パーツにオブジェクトを渡す方法が不思議でした。 imはマイケル・ハートルの本に続き、これはオプションのエクササイズでしたが、超絶したことがありました。オブジェクトをパーシャルに渡し、別のパーツに渡す

私は本から..

<%= 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> 

はなぜそれはそれを投げないと言いますか?私は「オブジェクト」としてキーを参照できると思った。

また、iveは何に置き換えられました??????と。上記のエラーを再現するために、私は??????次の部分的な「オブジェクト」が定義されていないということから別のエラーがスローされます。 fはもはや存在しないので、f.objectのようなものは使用できません。どのように私は次の部分に渡す値を得ることができますか?

おかげでたくさん=)

答えて

2

さて、あなたはobject: f.objectに渡している、とf.objectUserです。だからobject.labelに電話しようとしますが、Userにはlabelという方法がありません。 object: f.object, f: fを渡す場合は、f.labelに電話することができます。

+0

があります。ありがとうございました! 私は結局???????? 'オブジェクト'とすべてが動作します。どうもありがとう! – Sasha

関連する問題