我发表了一篇关于禁用 ActiveModel 回调的文章,但我不完全确定这是做这种事情的最漂亮的方法。
Mongoid::Timestamps
updated_at
添加更新字段的保存前回调。假设在某些情况下我不希望这样,并且我禁用了这样的回调:
class User
# I'm using Mongoid, but this should work for anything based on
# ActiveModel.
include Mongoid::Document
include Mongoid::Timestamps
def sneaky_update(attributes)
User.skip_callback(:save, :before, :set_updated_at)
User.update_attributes(attributes)
User.set_callback(:save, :before, :set_updated_at)
end
end
调用skip_callback
然后set_callback
再次设置删除的回调是一个坏主意吗?你会怎么做?:)