在清关用户创建时创建依赖记录

Create dependant record on Clearance user creation

我只是想在用户注册时创建另一条记录。我认为以下是 Clearance 触及我的应用程序的唯一地方,不计算观看次数。

class ApplicationController < ActionController::Base
  include Clearance::Controller
  before_action :require_login
  .
  .
  .
end

class User < ActiveRecord::Base
  include Clearance::User
  has_many :received_messages, class_name: 'Message', foreign_key: :receiver_id
  has_one :privilege
end

您需要 after_create(或者 before_create,或其他一些挂钩,具体取决于您的语义),它由 Rails 独立于 Clearance 提供。它允许您在创建 User 记录后向 运行 声明一个方法,该方法可以创建您希望存在的其他对象。

class User < ActiveRecord::Base
  after_create :create_other_thing

  private

  def create_other_thing
    OtherThing.create(other_thing_attributes)
  end
end

请注意 after_create 运行 与您的 User 创建在同一事务中,因此如果在 OtherThing.create 期间出现异常,它和 User 将被回滚。

查看 Active Record Callbacks 以了解有关 ActiveRecord 生命周期挂钩如何工作的完整详细信息。