我注意到Rails不会触发
after_initialize
下面的代码不起作用。
class User < ActiveRecord::Base
after_initialize :init_data
def init_data
puts "In init_data"
end
end
下面的代码有效。
class User < ActiveRecord::Base
def after_initialize
init_data
end
def init_data
puts "In init_data"
end
end
有人能解释一下这种行为吗?
附注1
活动记录
documentation
以下是关于
初始化后
:
Unlike all the other callbacks, after_find and after_initialize will
only be run if an explicit implementation is defined (def after_find).
In that case, all of the callback types will be called.
虽然有人说在初始化需要显式实现之后,我发现上面段落中的第二句话很模糊,即。
In that case, all of
the callback types will be called.
all of the call back types
?
文档中的代码示例有一个不使用显式实现的示例:
after_initialize EncryptionWrapper.new