#環境
rails 5.2.4
ruby 2.5.7
#実装したい内容
子要素をformでデータベースに登録する際、selectでデータベースに既に登録されている、親要素を選択したい。
#具体的な状況
子要素→item
親要素→genre
itemsテーブルにgenre_idカラムを持つ。
form_withなどでgenre_idを登録したい。その時、genresテーブルに登録されたgenreのtitleを直接、選択できるようにしたい。
#書き方
[items/new]
<%= form_with model:@item, url: admins_items_path, method: :post do |i| %>
<p>name</p>
<%= i.text_field :name %>
<p>genre</p>
<%= i.select :genre_id, Genre.all.map {|p| [p.title, p.id]}, :prompt => "選択してください" %>
<%= i.submit "submit!" %>
selectを使うことで選択肢が出現します。
mapはGenre.allで取得したデータを配列として出力してくれます。
{|p| [p.title, p.id]}このような順で書くことにより、titleデータを選択肢として出力してくれます。