Задний план
У меня есть приложение rails с глубоко вложенными ассоциациями.
.-< WorkPeriod
Timecard -< Week -< Day -<--< Subtotal
`-< Adjustment
-< (has many)
Я использую Active Model Serializer для создания API.
На стороне клиента я хочу загрузить временную карту и все ее ассоциации за один раз.
В настоящее время мои сериализаторы выглядят так:
class TimecardSerializer < ActiveModel::Serializer
embed :ids, include: true
has_many :weeks
end
class WeekSerializer < ActiveModel::Serializer
embed :ids, include: true
has_many :days
end
# ... etc ...
Проблема
Все это работает, за исключением того, что ничего не загружается. Таким образом, для каждого запроса выполняется множество обращений к базе данных. Для каждой недели он делает отдельный запрос для дней этой недели. И для каждого дня он делает отдельный запрос для своих рабочих_периодов, промежуточных итогов и корректировок.