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