2011-11-16 6 views
10

カテゴリと他のモデル製品というモデルがあります。彼らはhas_manyとbelongs_toの関係を持っています。私の見解collection_selectメソッドがRails 3.1.1でエラーを返しました

<p><%= f.collection_select(:product, :category_id, Category.all, :id, :name)%> 

で しかし、コードは私にそれと間違っているものを

undefined method `merge' for :name:Symbol 

任意の手掛かりを与えていますか?

答えて

37

チャンスは、あなたがこのような何か持っている:

<%= form_for @product do |f| %> 

fすでにproductに結ばれているので、あなたはあなたの最初の引数としてそれを含める必要はありませんが、それだけで次のようになります。

<%= f.collection_select :category_id, Category.all, :id, :name %> 

それとも、あなたが使用することができませんでしf.

<%= collection_select :product, :category_id, Category.all, :id, :name %> 
+0

のTh助けてくれた。ありがとうございました。あなたは何が間違っていたのかを概念的に説明できますか?感謝の意を表します。 –

+0

form_forを使用すると、すべてのフィールドに ':product'を入れる必要がなくなります。これを読んで、 'f.'部分をどのように展開するのかを説明します:http://api.rubyonrails.org/classes/ActionView/Helpers/FormHelper.html#method-i-form_for –

+0

私は試したときにこのエラーが発生しましたTwitter Bootstrapで使用するカスタムform_helperを実装する私はRailsには初めてのことですが、あなたの答えを見つけたときに本当に目を開けました。ありがとう、あなたに、問題は修正されました!とても感謝しています!! – MattSlay

関連する問題