Rails セレクトボックス

やりたいこと

railsにてセレクトボックス 機能をつけたい。セレクトボックスの内容はenumの値を表示。



調査

railsdoc.com



実装

main.rb

  enum stores: { seven: 0, lawson: 1, family: 2 }, _prefix: true

enumの値はセブン-イレブン、Lawson、FamilyMartとしている。

理想的な完成図は以下のようなセレクトボックス 。

✔️コンビニ名を選択してください
セブン-イレブン
Lawson
FamilyMart


今回、セレクトボックスを作成するに当たって、option_for_selectを採用しました。 option_for_selectは配列、ハッシュからオプションタグを生成するメソッドです。第一引数と第二引数に記載する内容が決められています。

  • 第1引数:選択肢にしたいものの配列/ハッシュ形式

  • 第2引数:デフォルト値を設定できるなど

今回はoption_for_selectの第一引数のみで実装します。


mains/new.html.erb

   <%= f.select :stores, options_for_select(Main.stores_i18n.invert), {include_blank: 'コンビニ名を選択'}, class: "food_create_select" %>


Main.stores_i18n.invertの部分は以前、記事を書いたことがありますので参考にしてください。

https://blog.hatena.ne.jp/takuya178/takuya178.hatenablog.com/edit?entry=13574176438028774642

Main.stores_i18n.invertでキーにenum_helpで日本語化された値が入り、バリューにenumで記載したseven,lawson,familyが入ってくれます。


次にinclude_blankなのですが、これは初期画面でセレクトボックスに表示したい文字を入れることができます。今回だと'コンビニ名を選択してください'を記載します。