У меня есть очень простое приложение Rails с очень простой реляционной базой данных: в категории много примеров. Я просто хотел бы загрузить категории, в которых есть X образцов.
В простом SQL я бы сделал что-то вроде этого:
SELECT
categories.*
FROM
categories
JOIN
(SELECT
category_id, COUNT(*) as sample_count
FROM
samples
GROUP BY
category_id
) AS subselect
ON
categories.id=subselect.category_id
WHERE
subselect.sample_count = X; -- where X is whatever
Кстати, это прекрасно работает, но использование необработанного SQL не очень похоже на Rails. И, очевидно, я хотел бы получить эти категории как экземпляры модели, поэтому:
Как мне переписать что-то подобное в запрос ActiveRecord или Arel? Возможно ли это вообще, или мне следует использовать простой SQL? Возможно, есть более простой способ сделать это?