RailsでModelからselectボックスをつくる

collection_selectを使うといい感じにできる。例えば、あるグループに所属しているユーザーをプルダウンで選択させたい場合はこんな感じ。

<%= f.collection_select :user_id, @group.users.all, :id, :name %>

ってやるとuser.idがoptionのvalue、user.nameがoptionの中身になる。結果はこんな感じ。

<select id="user_id" name="task[user_id]">
  <option value="1">user1</option>
  <option value="2">user2</option>
</select>

デフォルトのテキストも表示したい場合はinclude_blankオプションを設定する。

<%= f.collection_select :assigned_user_id, @group.users.all, :id, :name, include_blank: '選択してね!' %>