2012-03-21 7 views
0

私は3つの別個のcollection_selectsを作成して、Team has_manyのプレーヤーがいるチームの選手を選びたいと考えています。しかし、私は次のコードを3回持っている場合...Railsでは、3つのコレクション選択を使って3つのhas_many値を追加するにはどうすればよいですか?

...すべてが同じものを指しているので、それはパラメータで1つ戻ってきます。

3つのコレクション選択を使用して3つのhas_many値を追加するにはどうすればよいですか?

私は

= f.collection_select :player_ids, @season.players, :id, :name, {}, { :multiple => true } 

答えて

1

すべての3つのドロップダウンが同じHTML <select>要素のIDと名前を共有しているためあなたは、一つだけのparams内を取得しているを使用する必要はありません。

あなたは、複数アプローチを好きではない私は考えることができる唯一のことは、次のように手動でドロップダウンのIDと名前を指定した場合:

f.collection_select :player_ids, @season.players, :id, :name, {}, {:id => "dropdown_1", :name => "season[player_ids][]"} 
f.collection_select :player_ids, @season.players, :id, :name, {}, {:id => "dropdown_2", :name => "season[player_ids][]"} 
f.collection_select :player_ids, @season.players, :id, :name, {}, {:id => "dropdown_3", :name => "season[player_ids][]"} 

IDはあなたが好むものは何でもすることができますが、すべての3つは異なっていなければならない。本当に重要なのは、アップデートするモデル(この場合はシーズンとする)と一致する必要があるため、"name"属性です。最後の括弧[]はIDの配列IDごとのドロップダウン)

関連する問題