使用一个简单的示例进行设置:我有1个表(Totals
),其中包含amount
第二个表(Things
)中每个记录的列的总和。
当thing.amount
得到更新,我想简单地将旧值和新值之间的差异total.sum
。
现在,我要self.amount
在期间减去before_update
并self.amount
在期间添加after_update
。这使WAY对更新的成功过于信任。
约束: 我不想简单地重新计算所有交易的总和。
问题:很简单,我想在after_update
回调期间访问原始值。您想出了什么方法呢?
更新:我同意卢克·弗朗克的想法。在after_update
回调期间,您仍然可以访问self.attr_was
正是我想要的值。我还决定采用一个after_update
实现,因为我想在模型中保留这种逻辑。这样,无论我将来决定如何更新事务,我都会知道我正在正确更新事务总和。感谢大家的实施建议。