【发布时间】:2010-10-11 01:27:40
【问题描述】:
使用简单示例进行设置:我有 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 实现,因为我想在模型中保留这种逻辑。这样,无论我决定将来如何更新交易,我都会知道我正在正确更新交易的总和。感谢大家的实施建议。
【问题讨论】:
标签: ruby-on-rails activerecord model callback