尝试编写包含查询的rake任务,该查询将在连接表上按一个值分组,然后对另一列求和。我想使用查询界面来做。此任务的目的是查找过去5天内最受欢迎的视频。
相关部分:
course_ids = Course.where(school_id: priority_schools).pluck(:id)
sections = Section.where(course_id: course_ids)
sections.each do |section|
users = section.users.select {|user| user.time_watched > 0}
user_ids = []
users.each { |user| user_ids << user.id }
user_videos = UserVideo.group(:video_id).
select(:id, :video_id, :time_watched).
where("created_at > ?", Date.today - 5.days).
where(user_id: user_ids).sum(:time_watched)
p "user_videos: #{user_videos.inspect}"
end
有关如何/最佳方式编写此查询的任何建议?