我有一个社交应用,每个页面显示20张图片,发布用户,每个图片的评论和每条评论的作者,还喜欢每个图片的用户喜欢它
所以image belongs_to user
,image has_many comments and likes
,comment belong_to user
和like belong_to user
在我的ImagesController #index中,我急切地加载所有这些:
def index
@images = Image.includes(:user, likes: :user, comments: :user).paginate(page: params[:page], per_page: 20)
end
这里的问题是所有与作者的评论都会被加载,对于喜欢的人来说也是如此。
此外,无法限制急切加载的关联:来自doc:
如果您希望加载具有指定:limit选项的关联,那么 将被忽略,返回所有相关对象
那么如何在这种情况下优化我的请求? (我想要为每个图像获得热切的负载3条评论),任何其他建议都会有所帮助。谢谢