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

Yuv*_*rmi 14 ruby arel ruby-on-rails-3

我有一个Collection有很多硬币的课.我想选择有两个以上硬币的收藏品.目前,我通过直接的Ruby实现这一点没有问题,但这是非常低效的.

我目前的代码:

collections = Collection.all.select { |c| c.coins.count > 2 }
Run Code Online (Sandbox Code Playgroud)

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

谢谢!

Yuv*_*rmi 23

回答我自己的问题:

Collection.joins(:coins).group("coins.collection_id").having("count(coins.id) > 2")
Run Code Online (Sandbox Code Playgroud)

KJF小费提出这个类似的问题并向krakover提出回答问题.