Как присоединиться к таблице и подсчитать записи в Rails 3?

У меня есть класс Collection, который имеет много монет. Я пытаюсь выбрать коллекции, содержащие более двух монет. В настоящее время у меня нет проблем делать это через прямой Ruby, но это крайне неэффективно.

Мой текущий код:

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

Как достичь этого с помощью вызова joins с помощью Arel?

Спасибо!

Ответы

Ответ 1

Чтобы ответить на мой собственный вопрос:

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

Совет чат до KJF, который спросил этот похожий вопрос и krakover для ответа на него.