Railsでプルダウンリスト(セレクトボックス)を作る
前提知識:options_for_selectやoptions_from_collection_for_selectは、Railsが用意しているヘルパーメソッド
options_for_selectだと、選択肢の配列をいちいち書かないといけないのが面倒。
= options_for_select([['London',1], ['Tokyo',2], ['Beijing',2]]) ★ポイント:二重配列
https://gyazo.com/d675da99cdcd89864396ec7928fe75ae
引数に渡す配列を、変数で定義して渡すという方法もあるが、2行になる
code:.rb
- array = User.all.map{ |user| user.name, user.id } # 選択肢の入った配列を作成
#=>
["Komagata Masaki", 459775584,
"Machida Teppei", 679998234,
"卒業 就職済美", 167767308,
"卒業 太郎", 609827778,
"アドバイ 次郎", 421530892]
= options_for_select( array ) #引数として渡す
そこで、選択肢生成&プルダウンリストを、一気に作成してくれるのが、options_from_collection_for_select
いちいちselectタグを作らなくてすむ!
code:.rb
# 使い方
options_from_collection_for_select(選択肢の入った2重配列, optionタグのvalueとなる値, 選択肢のテキストとして表示する名前,選択された要素(多分これを指定するとデフォルトで選択肢が選択された状態になる))
# bootcampの日報一覧の絞込機能 (app/views/products/unchecked/index.html.slim)
options_from_collection_for_select(current_user.practices, :id, :title, selected: params:practice_id)