У меня есть три модели, назовем их Product
, TemplateProduct
и ReadyProduct
. Для них существует только одна таблица, таблица products
, и обе TemplateProduct
и ReadyProduct
наследуются от модели Product
. Между TemplateProduct
и ReadyProduct
существует связь has_many / own_to. Шаблоны используются для определения общих характеристик продуктов, а Readys - для настройки продуктов и того, что фактически доступно для просмотра клиенту. Каждый TemplateProduct
имеет id
, а каждый ReadyProduct
имеет template_product_id
, который связан с его шаблоном.
Проект построен с использованием Rails 5.
Кем я хочу быть можно собрать список TemplateProduct
с, затем получить счетчик каждого шаблона, связанного с ReadyProduct
с, и сделать это таким образом, чтобы не забивать базу данных. Я понимаю ассоциации ActiveRecord, но мой SQL слаб, и у меня есть только ограниченное понимание объединений. Я могу собрать список TemplateProduct
с простым Product.where(conditions
), но я не знаю, что, когда у меня есть это. Ради гибкости я хочу иметь возможность подсчитать ReadyProduct
этого начального сбора, так как иногда мне понадобится дополнительный счет, а иногда нет. Я уверен, что должен быть простой способ сделать это, но я не нашел решения.