Rails: 基本的なオプションタグの生成方法 options_for_select


オプションタグを options_for_select で生成する方法についてまとめました。

環境

  • Ruby 2.2.3
  • Rails 4.2.5

options_for_select

配列、ハッシュからオプションタグを生成するメソッドです。 options_from_collectin_for_select を知らなくても、 これさえあればオプションタグは作れます。

基本

単純な配列を渡すと、配列要素の値がオプションになります。

後ろに選択された値を渡すことで、初期値を設定できます。

選択された値を複数渡すには、配列で渡します。

値と表示を別にする

option タグ の value を個別に設定する場合は、 配列またはハッシュを使って value と 表示名称 を渡します。 配列の場合は 表示名を最初の要素に、 value を次の要素にします。 ハッシュの場合は 表示名をキーに、 value を値に設定します。

選択されているものを設定するには、上と同じ方法で、2番目の引数に value 値 を 値または配列 で渡します。

HTML属性を追加する

html属性を追加するには、 配列になっている各オプションの中にハッシュを入れます。

オプションをハッシュで渡す場合にもやり方があるかもしれませんが、 公式のAPIドキュメントには Array と書かれているので Array を使います。 この HTML属性は option_html_attributes によって配列から抽出されます。

最初の引数に ["a", ["b", "c"]] を渡していれば element には "a"["b", "c"] が渡されます。 配列で {a: 1, b: 2} を渡した場合には element には ["a", 1]["b", 2] が渡されます。

使用不可能なオプションを指定する

初期値を指定する場合と似ていますが、 ここでは ハッシュ として disabled の値に、 使用不可にするオプション value 値 の 値または配列 を設定します。

最後の引数に設定できるのは selecteddisabled のみです。 最後の引数は、 options_for_select の中で呼び出される、 extract_selected_and_disabled によって処理されます。