0

モデルで collection_select を実行しているアプリがあります。SpecialEquipment から複数の ID を選択できるようにする必要があります。

これが私の選択ステートメントです:

<%= f.collection_select(:special_equipment_id, SpecialEquipment.all, :id, :name,  {}, {:multiple => true, :class => 'select'})%>

UI をより魅力的にするために select2 gem を使用しています。複数の ID を選択できますが、フォームがデータベースに書き込むときに、最初の選択のみが書き込まれます。

1.9.3p194 :004 > Call.last.special_equipment
  Call Load (0.9ms)  SELECT "calls".* FROM "calls" ORDER BY "calls"."id" DESC LIMIT 1
  SpecialEquipment Load (0.3ms)  SELECT "special_equipments".* FROM "special_equipments" WHERE "special_equipments"."id" = 1 LIMIT 1
 => #<SpecialEquipment id: 1, name: "O2", created_at: "2012-06-27 21:43:41", updated_at: "2012-06-27 21:43:41"> 

私は何を間違っていますか?次のように関連付けを設定しています。

Call.rb 所属先 :special_equipment

Special_Equipment.rb has_many :calls

4

1 に答える 1

0

これは、has_many:throughアソシエーションを使用し、フォーム入力を結合テーブルに書き込むことで解決されました。これで、レコードを複数選択して適切に保持できるようになりました。

于 2012-08-02T13:14:41.803 に答える