Form Helperの collection_select について

✏️️ 2019/08/22 👍️2019/08/22 🔗

Form Helperの collection_select について纏めました。

Format

form.collection_select(method, collection, value_method, text_method, options = {}, html_options = {})
key 意味
method paramsで送るメソッド名
collection 以下のvalue属性とテキスト項目で利用したい配列を指定
value_method valueで送るメソッドを指定
text_method optionタグ内のテキストに設定したいメソッドを指定

以下のhtmlが出力されます。

<%= form.collection_select( :category_id, Category.all, :id, :name, {include_blank: '選択してください' })%>
<select name="post[category_id]" id="post_category_id">
    <option value="">選択してください</option>
    <option value="1">First Category</option>
    <option value="2">Second Category</option>
    <option value="3">Third Category</option>
</select>

collection_select で利用できるオプション

key 意味
include_blank optionタグの初期値を指定。tureだと空文字が表示される
prompt optionタグの先頭に文字列を追加できる
# include_blank
<select name="post[category_id]" id="post_category_id">
    <option value="">選択してください</option>
    <option value="1">First Category</option>
    <option value="2">Second Category</option>
    <option value="3">Third Category</option>
</select>
# prompt
<select name="post[category_id]" id="post_category_id">
    <option value>選択してください</option>
    <option value="1">First Category</option>
    <option value="2">Second Category</option>
    <option value="3">Third Category</option>
</select>

参考

Akito
日本のスタートアップで主にRuby on Railsを使ってプロダクト開発をしています。