Стремительная загрузка ассоциаций с сериализаторами активных моделей
Фон
У меня есть приложение рельсов с глубоко вложенными ассоциациями.
.-< WorkPeriod
Timecard -< Week -< Day -<--< Subtotal
`-< Adjustment
-< (has many)
я используюСериализатор активной модели построить 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 ...
проблемаЭто все работает найти, кроме ничего загруженного. Таким образом, в итоге для каждого запроса выполняется множество обращений к базе данных. Для каждой недели он делает отдельный запрос на дни в этой неделе. И для каждого дня, он делает отдельный запрос для своих work_periods, промежуточных итогов и корректировок.