在清除用户创建上创建依赖记录

时间:2016-02-10 01:24:38

标签: ruby-on-rails clearance

我只想在用户注册时创建另一条记录。我认为以下是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

1 个答案:

答案 0 :(得分:2)

你想要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_createUser创建的同一交易中运行时间比OtherThing.create更高,因此如果在User期间出现例外情况,则{{1}}将被退回。

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