我们使用一组自定义的“魔术”列,我们会在每个AR模型中检查这些列。如果找到任何内容,则在保存或保存之前,它们会被适当填充!这是使用以下代码作为初始化程序完成的:
module HLLAuditStamps
extend ActiveSupport::Concern
included do
before_save :set_audit_attributes
end
private
def set_audit_attributes
. . .
end
end
class ActiveRecord::Base
include HLLAuditStamps
end
我的问题是:如果我们在其中一个模型中添加了一个before_save回调,那么这个代码会发生什么?这两个都被执行了吗?模型回调是否覆盖初始化程序中提供的默认值?
答案 0 :(得分:0)
为了澄清,上面添加的默认值和添加到特定模型的任何自定义before_save回调都将执行。 。 。我相信"可继承的回调队列"在ActiveRecord :: Callbacks文档中将适用。回调宏如before_save"将行为添加到回调队列中,该回调队列通过继承层次结构保持完整。" - 乔丹