我遵循多对多协会......
class User
has_and_belongs_to_many :starred_jobs, class_name: "Job",
join_table: "starred_jobs"
end
class Job
has_and_belongs_to_many :starred_by, join_table: "starred_jobs",
class_name: "User"
end
在查询中,我获得两个日期之间的用户数量,如
users = User.where(created_at: start_date..end_date)
在摘要页面中,我想查看所选用户的总工作数。现在,我如何从搜索到的用户获得工作总数?例如:
@total_users_jobs = users.jobs.count
提前致谢。
答案 0 :(得分:1)
这应该为您提供所有匹配用户的所有工作的总数
@total_users_jobs = Job.joins(:users).where(users: {id: users.map(&:id)}.uniq.count
答案 1 :(得分:1)
最简单且可能资源丰富的方法
users.map { |u| u.jobs.count }.sum
另一种方法
JobUser.where("user_id in (?)", users.map(&:id)).count
另一个
Job.joins(:users).where(users: {id: users.map(&:id)}.uniq.count