私は2つのオブジェクトの成分&起源を持っています。成分I中
ビューディスプレイruby - コンボボックスを埋める
<p>
<b>Name:</b>
<%= @ingredient.name %>
</p>
<p>
<b>Origin:</b>
<%= @ingredient.origin_id %>
</p>
をorigin_idたクラス成分が宣言されているように
class Ingredient < ActiveRecord::Base
has_and_belongs_to_many :recipes
belongs_to :origin
attr_accessible :name, :origin_id
end
クラス原点
class Origin < ActiveRecord::Base
attr_accessible :name
end
を次のように
各成分は、原点を有します編集フォーム私は書くと動作します
<% originsArray = Origin.all.map { |origin| [origin.name, origin.id] } %>
<div class="field">
<%= f.label :origin_id %><br/>
<%= f.select(:origin_id, originsArray) %><br/>
</div>
が、私は私が手
<%= collection_select(:origin, :id, @origins, :id, :name, options ={:prompt => "-Select a payment"}, :class =>"origin") %>
(すべてのチュートリアルのように)の代わりに書く場合
undefined method `map' for nil:NilClass
私が何を修正する必要がありますか?
編集 が追加さ:
デフ編集 @ingredient = Ingredient.find(のparams [:ID]) @origins = Origin.all エンド
「編集フォームに書いて動作する」 - 壊れていない場合は修正しないでください。 –
私は知っています。他の形で私はそれを変更したい。それは努力するものよりも働くものを試して変更することを開始する方が良いです。簡単にデバッグできます。 – Jeb