ActionView::Helpers::FormOptionsHelper
def grouped_options_for_select(grouped_options, selected_key = nil, options = {})

説明

グループごとの <optgroup> と、その中の <option> を作ります。

引数

値を変えると、ERB と HTML が変わります。

要素ごとに <optgroup> を 1 つ作ります。渡すものによって、次のように変わります。
  • Hash(グループの名前 => 選択肢):キーを <optgroup> の label 属性の値にします。
  • [グループの名前, 選択肢] の組の配列:1 つ目を <optgroup> の label 属性の値にします。組の 3 つ目に Hash を入れると、その <optgroup> の HTML 属性になります。
  • 選択肢だけの配列の配列:options の divider と一緒に使います。divider を渡さないと、配列の 1 つ目をグループの名前に、2 つ目を選択肢にします。選択肢が 1 つだけの配列があると、NoMethodError になります。
選択肢は、options_for_select の container と同じ形で渡します(文字列の配列、[テキスト, value] の組の配列など)。
= nil
グループごとに、そのまま options_for_select の selected に渡します。値か、値の配列か、key が selected と disabled の Hash を渡せます。同じ value の <option> がいくつかのグループにあれば、どれにも selected を追加します。
options= {}
true にすると、先頭に value が空の <option> を追加します。テキストは helpers.select.prompt の訳か、なければ Please select です。文字列を渡すと、その文字列をテキストにします。select と違い、selected を追加した <option> があっても追加します。
"----------"
どの <optgroup> の label 属性の値も、グループの名前の代わりにこの文字列にします。この option を渡すと、grouped_options の要素をグループの名前のない選択肢の配列として読みます。
ここにない options は使いません。

ERB

直前との違い: 追加 削除 変更


          

HTML


          

プレビュー

プレビューを操作すると、フォーム送信の内容が変わります。

フォーム送信

フォームデータ

namevalue
リクエストボディを見る

Content-Type:


              

params