如何在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列并查询它们。