У меня есть такая схема.
managers
has_many :emails
has_many :stores
emails
belongs_to :manager
stores
belongs_to :manager
belongs_to :region
regions
has_many :stores
has_many :readings
readings
belongs_to :regions
Я хочу получить показания для менеджера. В SQL я бы сделал что-то вроде этого.
SELECT * FROM managers
JOIN stores ON stores.manager_id = managers.id
JOIN regions ON stores.region_id = regions.id
JOIN readings ON readings.region_number = regions.number
WHERE
manager.name = 'John Smith'
AND
regions.number = '1234567'
LIMIT 100
Я не могу понять, как это сделать в activerecord. Я пытаюсь понять http://guides.rubyonrails.org/active_record_querying.html и http://guides.rubyonrails.org/association_basics.html но он не погружается. Мне кажется, мне просто нужно увидеть его с другой точки зрения.
Я думал, что буду обращаться к данным вроде этого, но я думаю, что просто не понимаю, как это работает.
managers.name
managers.stores.name
managers.stores.regions.readings.limit(10)
Мне нужно было что-то подобное, что намного уродливее.
managers.first.stores.first.regions.first.readings.limit(10)