【发布时间】:2021-07-29 17:06:16
【问题描述】:
如果我执行,我是否理解正确
model = Model.create(some_attr: "attr_value")
model.update(some_attr: "new_attr_value")
对于模型我有
before_update :before_update_callback
def before_update_callback
some_attr
end
该回调将返回“new_attr_value”,因为内部 ruby 对象(变量“模型”)在回调被调用之前发生了变化。
【问题讨论】:
-
从回调中返回什么都不做,但是
some_attr的值将是此时的新值。some_attr_changed?的值将是true,旧值将在some_attr_was。 -
@rmlockerd 在 Rails 5 从回调返回 false 之前会中止操作。
标签: ruby-on-rails activerecord callback