`find_or_create_by!`和`after_initialize`回调

时间:2017-01-17 19:29:59

标签: ruby-on-rails activerecord callback rails-activerecord

我们有类似的东西:

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解决了这个问题,但这仍然存在一些问题:

  1. find_or_create_by实际触发了哪些回调? (同上find_or_initialize_by
  2. ...为什么after_initialize没有运行?

0 个答案:

没有答案