blueberrycakeのブログ

railsとwebサービスについて書いています

modelを使わずに、optgroupタグを含んだセレクトボックスを作る方法

grouped_options_for_selectを使用します。

コントローラー上であらかじめ出力したい内容を配列で作成します。

各配列の最初の要素が<optgroup>として使用され、2番目の要素は<option>とvalue属性になります。

  @grouped_selectdata = [
    ['表題1', [['内容1-A', 0], ['内容1-B', 1], ['内容1-C', 2]]],
    ['表題2', [['内容2-A', 3], ['内容2-B', 4], ['内容2-C', 5]]],
    ['表題3', [['内容3-A', 6], ['内容3-B', 7], ['内容3-C', 8]]],
  ]

この配列をselect_tagとgrouped_options_for_selectで組み合わせます。

 <%= select_tag "sample", grouped_options_for_select(@grouped_selectdata) %>

このような表示になります。

f:id:blueberrycake:20120326100915p:plain