2011-10-11 40 views
2

我需要查询数据库表并获取按关联计数排序的行。有没有Rails(如Active Record Query)的方式来做到这一点?是Ruby on Rails 3:如何通过另一个表的属性对ActiveRecords进行排序?

我的模特和他们的协会如下:

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查询?

谢谢。

回答

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

这可能会工作

+0

太好了!我明天会试试这个,并且让你知道。我不知道包含函数。 –

+0

是的,工作!谢谢!我最终需要一些与众不同的东西(不得不增加另一个限制),但我在你的帮助下设法做到了。包含功能非常有用! –

相关问题