Rails1.2で複数選択フォームで初期値が選ばれているようにするには
Rails1.2で複数選択フォームを作るには、
ビューで、collection_selectでmultipleを指定し、nameを出すところに、kaitous[kaitou_id][]と書いてあげれば、指定したモデルのidと名前で選択肢を出してくれ、コントローラに複数選択した値が渡されます。
<code>
<select id =”hoge” name=”kaitous[kaitou_id][]” multiple=”multiple”>
<option value=”1″>回答A</option>
<option value=”2″>回答B</option>
</select>(ctrlキーで複数選択)<br>
</code>
新規作成の場面では上記でよいのですが、編集をするときに、既に選んでいたものが選択されておらず悩みました。
結局、ビューでコードを直接書きました
配列fugaに選択した結果が入っているとして、、、
<code>
<select id=”hoge” name=”kaitous[kaitou_id][]” multiple=”multiple”> <option value=”"></option>
<% Kaitou.find(:all).each do |r| %>
<option value=”<%= r.id %>” <%= fuga.include?(r.id.to_s) ? “selected=\”selected\”" : ” %> ><%= r.kaitou %>
</option>
<% end %>
</select>(ctrlキーで複数選択)<br>
</code>
ほんとうはもっと上手なヘルパの使い方があるのかと思いますが、まずは解決です。
トラックバック URL :
コメント (0)