やりたいこと。
一覧ページにhas_many関係にある親と子を表示させたい。
似たような質問がありましたが、一応、ここにメモ。
モデル
1
2
|
# parent.rb
has_many :children
|
1
2
|
# children.rb
belongs_to :parent
|
コントローラ
1
2
3
4
|
# parent.controller
def index
@parents = Parent.includes(:children).all
end
|
includesメソッドを使うのがミソ。includesメソッドは関連するモデルをまとめて取得してくれます。構文はincludes(関連名)
です。
ビュー
親の苗字(last_name)と子供の下の名前(first_name)を表示させたい。
1
2
3
4
5
6
7
8
9
|
# index.html.erb
<% @parents.each do |parent| %>
<%= parent.last_name %>
<% parent.children.each do |child| %>
<%= child.first_name %>
<% end %>
<% end %>
|
See Also