Этот вопрос иллюстрирует проблему RoR, которая довольно широко обсуждается - ее относительный дискомфорт из-за сложных требований к отображению базы данных. (Это действительно шаблон ActiveRecord, в котором лежат трудности.) Ему нравится разбивать сложные запросы на более простые, которые в большей степени соответствуют модели AR, что, как вы, вероятно, уже знаете, является относительно легкой абстракцией таблиц с простыми отношениями, основанными, например, на утверждения типа один ко многим.
Так что я бы сказал, что вам будет удобнее, если вы примете на себя обязанности SQL, а затем разрешите RoR обрабатывать непостоянные части.
Это не проблема, ограниченная RoR. Практически любой инструмент объектно-реляционного моделирования задает одни и те же вопросы.
(Сноска. Я почти использовал аббревиатуру ORM, но есть еще одна ORM, которая, по совпадению, специально обрабатывает эти типы концептуального проектирования баз данных и проблемы абстракции довольно хорошо: моделирование ролей объектов.)