我们有类似的东西:
class User < ActiveRecord::Base
#...
after_initialize do |user|
# stuff1
end
end
User.find_or_create_by!(email: data[:email]) do |user|
# stuff2 relying on code from the after_initialize
end
stuff2
的执行取决于stuff1
已经运行,我们收到的崩溃表明stuff1
没有运行。
使用find_or_initialize_by(..).tap
解决了这个问题,但这仍然存在一些问题:
find_or_create_by
实际触发了哪些回调? (同上find_or_initialize_by
)after_initialize
没有运行?