Rails 4 + 设计:创建用户后,创建 XYZ

Rails 4 + Devise: After create user, create XYZ

我有一个通过 Devise 创建的 User 模型,创建后,我想自动创建一个新的 Client(我的应用程序中的另一个模型)。新 Client 的属性 :user_id 应该等于刚创建的 User:id。我相信我需要使用类似的东西:

class Users::RegistrationsController < Devise::RegistrationsController
    after_create :create_client

    def create_client
        Client.create(:user_id, :id) # Not sure what should go here
    end 
end

这是完成此任务的正确方法吗?此外,如果关联很重要 Client belongs_to :userUser has_one :client

您可以在用户模型 (user.rb) 中添加 after_create 回调,查看 here 了解有关如何创建 has_one 关联的更多信息。

 class User < ActiveRecord::Base
   after_save :add_client


   def add_client
     self.create_client(client_attribute1: value, client_attribute2: value)
   end
 end