我有以下关联
class Picture < ActiveRecord::Base
belongs_to :user
end
class User < ActiveRecord::Base
has_many :pictures
end
在我的PicturesController中,我渴望加载用户
class PicturesController < ApplicationController
def index
@pictures = Picture.includes(:user).all
end
end
在我看来,我正在显示每个图片的用户名
-@pictures.each do |picture|
%tr
%td= picture.name
%td= picture.user.name
现在问题是,即使我急于加载用户,我也会在视图中显示用户名时看到个别查询。
我有大约1000张图片记录,我为此请求触发了超过1000个查询。 我究竟做错了什么?如何避免用户的个别查询?
答案 0 :(得分:0)
如果您只显示用户名,那么如何在查询中抓取它以及内连接呢?
查询:
@pictures = Picture.select("pictures.*, users.name as user_name").joins(:user).all
查看:
- @pictures.each do |picture|
%tr
%td= picture.name
%td= picture.user_name