私は2つのモデルを持っています:
class Game < ActiveRecord::Base
attr_accessible :name
has_and_belongs_to_many :categories
end
class Category < ActiveRecord::Base
attr_accessible :name
has_and_belongs_to_many :games
end
_form.html.erb
次のようなものを生成するHTML複数選択が必要です。
<select id="game_category_id" name="game[category_id]" multiple="multiple">
<option value="1">First Person Shooter</option>
<option value="2">Role Playing Game</option>
</select>
フォームを送信して を新規作成game
または編集するgame
場合、選択したカテゴリはそれに応じて保存する必要があります。通常、フィールドには Rails のcollection_select
メソッドを使用しselect
ます。それを複数選択にも使用できますか?
<%= f.collection_select(:category_id, Category.order('name'), :id, :name, {include_blank: true}) %>
もちろん、問題の 1 つは、モデルにcategory_id
フィールドがないことです。game
のコレクションですcategories
。最新の安定した Rails (現時点では 3.2.9) を使用しています。