背景
我有一个具有深度嵌套关联的 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 ...
问题
这一切都可以找到,除了没有任何东西被急切加载。所以它最终会为每个请求对数据库进行大量调用。对于每一周,它都会单独请求该周的天数。并且对于每一天,它都会单独请求它的 work_periods、小计和调整。