【Rails】formのselectにclassが設定できない問題

form_forで書いていたものをform_withに修正したところ、classに書いたBootstrapが反応しなくなりました。

f.select :month, options_for_select(['10', '11', '12']), class: "form-control"

本来ならform-controlを指定したので、デザインがBootstrapのそれらしいものになるはずなのですが、どうもデフォルトにままです。

結論から言うとoptions_for_selectの後に{}を追加することで

f.select :month, options_for_select(['10', '11', '12']),{}, class: "form-control"

これで正常に動作します。

どうしてこうすることで正常になるかと言うと、{}の部分には本来、

selectのpromptだったりinclude_blankを設定する場所だそうで、classをそこに指定してしまうと反映されないという理由らしいです。

form selectは頻繁に使うので、是非覚えておきたいところです。