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