やりたいこと
このようにセレクトボックスを実装しており、選択できないデフォルトの項目を先頭に表示したい。
結論
まずdisable
なラベルとして表示する値を配列の先頭に格納。
そしてその追加した項目を、selected
とdisabled
に指定してあげればOK。これで選択できないデフォルトの項目を先頭に表示できた。
ちなみにform_for
下の場合はこのようにすれば大丈夫だった。
よくありがちなミス
ケース1
このようにselected
・disable
に文字列を直接指定することはできない。あくまで配列の要素として指定する必要がある。
ケース2
また、options_for_select
ではなくselect_tag
のdisable
に指定しまうと、セレクトボックス自体が無効になってしまう。
1