Скажем, у меня есть модель автомобиля со многими ассоциированными моделями, некоторые из них has_many, другие has_one.
class Car
include Mongoid::Document
has_one :steering, class_name: "Car::Steering", autosave: true, dependent: :destroy
accepts_nested_attributes_for :steering, allow_destroy: true
has_many :tires, class_name: "Car::Tire", autosave: true, dependent: :destroy
accepts_nested_attributes_for :tires, allow_destroy: true
has_many :doors, class_name: "Car::Door", autosave: true, dependent: :destroy
accepts_nested_attributes_for :doors, allow_destroy: true
end
Как мне перечислить каждую Car
запись и показать количество каждой связанной записи модели?
Я хочу вернуть что-то вроде:
parts = { steering: 1, doors: 4 }
Я знаю, что могу идти по одному в каждой ассоциации и возвращать счет, но что если у меня будет 100 ассоциаций? Я хочу сделать это динамичным.
EDIT:
Я могу получить массив всех связанных записей has_many и has_one с помощью
car = Car.first
Car.reflect_on_all_associations(:has_many, :has_one).map(&:name)
=> [:steering, :tires, :doors, ...]