フォームヘルパのcollection_selectとselectどちらを使うか悩んだ
環境
DBにあるレコードをセレクトボックスに出力したいと思って調べた時の備忘録。
select要素を出力するには以下のフォームヘルパメソッドを使える。
- select
- collection_select
selct
"選択ボックスを生成。"
select要素を作るだけっぽい。
collection_select
"データベースの情報を元に選択しを生成。"
モデルのインスタンスを受け取ることが前提のヘルパっぽい。
sample
DBのレコードをセレクトボックスに出力すると以下のコードになる。
collection_select
<%= f.collection_select :category_id, @categories, :id, :name %> <%= f.collection_select :category_id, Category.all, :id, :name %>
select
<%= f.select :category_id, @categories.map {|u| [u.name , u.id] } %>
結論
DBにあるレコードをセレクトボックスに出力するなら、collection_select使った方が簡潔。