Rails4 includesで関連テーブルを先読み
グループに所属するユーザーの名前一覧を表示したかった。
Groupテーブルにはuser_idを持つ。Userテーブルのnameにはユーザー名が入っている。
関連テーブルの先読みをする場合、includesを使用するようだ。
Groupのコントローラーのindexに下記のように記載する。
@groups = Group.includes(:user). where(:group_id => 1)
ビューのINDEXに下記のように記載する。
<% @groups.each do |group| %> <tr> <td><%= group.group_id %></td> <td><%= group.user.name %></td> </tr> <% end %>
参考:
ActiveRecordの :include と :joins で発行されるSQLが全く違うようです - (゚∀゚)o彡 sasata299's blog