Rails为2个依赖资源创建回调

时间:2015-07-02 07:57:55

标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-4 callback

我想知道如何为两个依赖模型使用像before_create或after_create这样的创建回调。

class User < ActiveRecord::Base

end

class Member < ActiveRecord::Base

end

假设我有两个名为User和Member的模型,我想在创建任何用户时创建一个成员,并且想要在创建任何成员时创建用户。

如果我将在两个模型中使用after_create或before_create回调,它将作为永无止境的循环运行。所以如何做到这一点。

1 个答案:

答案 0 :(得分:1)

after_create回调中创建关联之前,只需检查数据库中是否存在关联,如下所示:

class User < ActiveRecord::Base
  after_create :create_member

  private
    def create_member
      unless self.member?
        # create member
      end
    end
end

class Member < ActiveRecord::Base
  after_create :create_user

  private
    def create_user
      unless self.user?
        # create user
      end
    end
end