Ответ 1
Чтобы ответить на мой собственный вопрос:
Collection.joins(:coins).group("coins.collection_id").having("count(coins.id) > 2")
Совет чат до KJF, который спросил этот похожий вопрос и krakover для ответа на него.
У меня есть класс Collection
, который имеет много монет.
Я пытаюсь выбрать коллекции, содержащие более двух монет.
В настоящее время у меня нет проблем делать это через прямой Ruby, но это крайне неэффективно.
Мой текущий код:
collections = Collection.all.select { |c| c.coins.count > 2 }
Как достичь этого с помощью вызова joins
с помощью Arel?
Спасибо!
Чтобы ответить на мой собственный вопрос:
Collection.joins(:coins).group("coins.collection_id").having("count(coins.id) > 2")
Совет чат до KJF, который спросил этот похожий вопрос и krakover для ответа на него.
Добавьте столбцы counter_cache и запросите их.