我想要找到的是所有事件,其中event.event_date将来,并且只能按事件与之关联的用户数量排序前3个事件。 HABTM关系加入了事件和用户。这是我试过的:
@popular_events = Event.where("event_date >= ?", Time.now)
.find(:all,
:joins => :users,
:group => 'event_id',
:order => "users.count DESC",
:limit => 10 )
我尝试过其他一些没有运气的事情。这是说users.count不是一个有效的列。
答案 0 :(得分:0)
信不信由你,使用ActiveRecord这对b * tt来说是一个痛苦。您或多或少必须依赖原始SQL来执行此操作。这里有一些答案:http://www.tatvartha.com/2009/03/activerecord-group-by-count-and-joins/