3

我正在编写一个计算字段 ActiveRecord 扩展(扩展 ActiveSupport::Concern),它需要在记录保存之前对其执行一些计算。这些计算可能需要一些字段和时间戳本身的值(created_at、updated_at)。

但是,所有 before_save 回调都是在写入时间戳之前执行的。这是因为 Timestamp 模块覆盖了createupdate来添加时间戳:

有谁知道在保存记录之前但在写入时间戳之后挂钩模型的简单方法?谢谢!

after_create 为我完成了这项工作,但它并不是一个干净的解决方案。首先,我需要再次调用 save 。其次,如果其他 gem 正在观察 after_create 事件,由于触发回调的方式,它们可能无法及时访问计算字段值。

4

0 回答 0