ダメでしょ!

プログラミングとか怒られた話とか…

simple_form と bootstrap を利用した環境で f.collection_select をどう書くか

前提

rails 4系
simple_form 3.2.1
bootstrap-sass 3.3.7

そのままだと(非bootstrap になる)

通常、collection_selectは以下のように記載しています。

= f.collection_select :option_id, OptionMaster.all, :id, :option_name, { prompt: true, class: 'form-control' }

しかし、これだと以下の画像のように、非bootstrapな表示をされてしまいます。 f:id:hideukin:20160822144011p:plain

bootstrap に対応した書き方

下のように記載することで、bootstrapに対応した表示になります。

= f.input :option_master_id, collection: OptionMaster.all.map { |v| [v.option_name, v.id] }

f:id:hideukin:20160822144109p:plain

f.input とした上で、collection: の後ろに配列で value と text の組を記載するのがポイントです。

公式も確認したのですが、いまいち曖昧に読み取れたので、ブログに書いてみました。

github.com