【发布时间】:2017-06-28 02:54:44
【问题描述】:
我有一个包含以下字段的排名模型:
Ranking.rb
t.string "job_type"
t.integer "user_id"
t.integer "ranking"
t.integer "total_ranked"
t.integer "points"
此表由具有约 100 条记录的后台作业填充。然后我想让我的 API 查询并返回存储在排名中的记录结果,如下所示:
@rankings = Ranking.where(job_type: 'all_users').order('id ASC').select('id, user_id, ranking, points')
问题是我没有每个排名的相关用户信息。对于每个排名,我想使用 user_id 来查找用户并获取 User.displayName、User.photo_url。
如果我遍历@rankings 并对每条记录进行用户查询,这将是额外的 100 多个查询。
如何获取@rankings 并以某种方式包含相关的用户字段(User.displayName、User.photo_url)?理想情况下,数据库查询较少。
【问题讨论】:
-
你可以使用
includes,比如:Ranking.includes(:user)guides.rubyonrails.org/…
标签: ruby-on-rails ruby postgresql ruby-on-rails-5