通过has_many关联的总和对对象进行排序。 Ruby On Rails

时间:2015-06-23 16:48:13

标签: ruby-on-rails ruby

我有两个型号

class User < ActiveRecord::Base
   has_many :tests
end

class Test <ActiveRecord::Base
   belongs_to :user
end

我需要按测试分数的总和对所有用户进行排序,仅限过去7天。

我一直在使用:

User.joins(:tests).group(:user_id).order("sum(tests.score) DESC")

如何按照最后7天的create_at测试得分对用户进行排序?

1 个答案:

答案 0 :(得分:2)

试试这个

User.joins(:tests).where('tests.created_at >= ?', 1.week.ago).group(:user_id).order("sum(tests.score) DESC")