我在优化大型活动记录查询时遇到问题。我需要在我的请求中包含一个关联模型,但由于返回集的大小,我只想包含几个关联列。例如我有:
Post.includes(:user).large_set
当我在寻找类似的东西时:
Post.includes(:user.name, :user.profile_pic).large_set
我需要实际使用名称和个人资料图片属性,因此据我了解, Post.joins(:user) 不是一个选项。
我在优化大型活动记录查询时遇到问题。我需要在我的请求中包含一个关联模型,但由于返回集的大小,我只想包含几个关联列。例如我有:
Post.includes(:user).large_set
当我在寻找类似的东西时:
Post.includes(:user.name, :user.profile_pic).large_set
我需要实际使用名称和个人资料图片属性,因此据我了解, Post.joins(:user) 不是一个选项。
select
是您正在寻找的:
Post.select("posts.*, users.name, users.profile_pic").large_set
http://guides.rubyonrails.org/active_record_querying.html#selecting-specific-fields
你必须使用 join 来完成你想要的,因为包含没有这个功能。或者你可以白你自己的包含方法:-)