如何从ActiveRecord优化海量数据

时间:2013-12-05 06:19:12

标签: ruby-on-rails activerecord

我有一个社交应用,每个页面显示20张图片,发布用户,每个图片的评论和每条评论的作者,还喜欢每个图片的用户喜欢它

所以image belongs_to userimage has_many comments and likescomment belong_to userlike 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条评论),任何其他建议都会有所帮助。谢谢

0 个答案:

没有答案