【发布时间】:2019-04-12 12:47:55
【问题描述】:
我有一个简单的序列化器,其中一个属性的处理取决于另一个属性的处理。
所以我的代码看起来像:
class CounterSerializer < ActiveModel::Serializer
attribute :CounterId do
object.id
end
attribute :CounterValue do
@value = SomeClass.get_counter_value(object.id)
end
attribute :NextCounterValue do
@value + 1
end
end
所以,假设我在两个属性中使用了@value,并且第二个属性的值取决于第一个属性的输出,我可以假设CounterValue 将被计算之前 @987654324 @? (即没有异步计算问题)
还请记住,NextCounterValue 不应再次调用 SomeClass.get_counter_value(性能问题)
【问题讨论】:
-
我猜是的。通常属性按序列化程序文件中指定的顺序显示。因此,计算也将按照提到的顺序一一进行。
标签: ruby-on-rails active-model-serializers