如何在Rails 3中加入表并计算记录?

我有一个有很多硬币的Collection类。 我正在尝试选择有两个以上硬币的collections品。 目前,我通过直接的Ruby实现这一点没有问题,但这是非常低效的。

我目前的代码:

 collections = Collection.all.select { |c| c.coins.count > 2 } 

如何通过与Arel的joins调用实现这一目标?

谢谢!

回答我自己的问题:

 Collection.joins(:coins).group("coins.collection_id").having("count(coins.id) > 2") 

给KJF的小费提示,他问了这个类似的问题 ,并向krakover提出回答问题。

添加counter_cache列并查询它们。

http://railscasts.com/episodes/23-counter-cache-column