我有一个带有深层嵌套关联的rails应用程序.
.-< WorkPeriod
Timecard -< Week -< Day -<--< Subtotal
`-< Adjustment
-< (has many)
Run Code Online (Sandbox Code Playgroud)
我正在使用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 ...
Run Code Online (Sandbox Code Playgroud)
这一切都找到了,除了没有什么急于加载.因此,它最终会针对每个请求对数据库进行大量调用.对于每周,它会单独请求该周的日期.并且对于每一天,它单独请求它的work_periods,小计和调整.
performance ruby-on-rails associations eager-loading active-model-serializers