Associações de carga ansiosas com Serializadores de Modelo Ativo
fundo
Eu tenho um aplicativo de trilhos com associações profundamente aninhadas.
.-< WorkPeriod
Timecard -< Week -< Day -<--< Subtotal
`-< Adjustment
-< (has many)
estou a usarSerializador de Modelo Ativo para construir a API.
No lado do cliente, quero carregar um cartão de ponto e todas as associações de uma só vez.
Atualmente meus serializadores ficam assim,
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 ...
ProblemaIsso tudo funciona, exceto que nada fica sobrecarregado. Por isso, acaba fazendo muitas chamadas para o banco de dados para cada solicitação. Para cada semana, faz uma solicitação separada para os dias da semana. E para cada dia, ele faz uma solicitação separada para os seus work_periods, subtotais e ajustes.