今回はcollection_selectの使い方について解説です。
やりたいこと
selectの中身の要素ひとつひとつにidを付与し、nameで表示したい。
こんな感じに。
使い方
collection_selectには、オプションやHTML属性等があり、それらを変えることで様々な見た目の変更ができますが、今回は一番オーソドックスな、先頭に”選択してください”という空のオプションを付けてあげたいと思います。
模範はこんな感じです。
= f.collection_select カラム名, 要素の配列, value属性の項目, テキストの項目, { prompt: "選択してください" }
実際に使うとこんな感じです。
= f.collection_select :prefecture, @prefecture, :id, :name, { prompt: "選択してください" }
# @prefecture(インスタンス変数)に都道府県の情報をallで入れておく
# 要素のvalueでidを付与したいので、value属性の項目箇所は:idにする
# テキストではnameで表示したいので、テキストの項目箇所は:nameにする
基本的にcollection_selectはactive_hashと並行して使うことが多いです。
active_hashの勉強をしてからcellection_selectを学んだ方が効率はいいかもしれません。
active_hashに使い方
参考資料
以上