Ruby on Rails 3:如何通过另一个表的属性对ActiveRecords进行排序?

时间:2011-10-11 20:11:12

标签: activerecord join ruby-on-rails-3.1

我需要查询数据库表并获取按关联计数排序的行。是否有Rails(如Active Record Query)这样做?

我的模型及其关联如下:

class User < ActiveRecord::Base
has_one :business
end

class Business < ActiveRecord::Base
has_many :postulations
end

class Postulation < ActiveRecord::Base
belongs_to :business
end

我需要按照其业务所拥有的假设数量来订购一些用户。有没有一种干净的方法可以做到这一点,或者我只需要查询find_by_sql?

谢谢。

1 个答案:

答案 0 :(得分:2)

User.includes(:business => :postulations).group("users.id").order("count(postulations.id) desc").limit(20)

这可能会起作用