【问题标题】:Rails 4 + Devise: After create user, create XYZRails 4 + 设计:创建用户后,创建 XYZ
【发布时间】:2016-02-18 01:55:32
【问题描述】:

我有一个通过 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

【问题讨论】:

    标签: ruby-on-rails devise associations


    【解决方案1】:

    您可以在用户模型(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
    

    【讨论】:

    • 你从哪里得到Contact?这应该是User 吗?这应该是Devise User 模型吗?
    猜你喜欢
    • 2019-09-30
    • 1970-01-01
    • 1970-01-01
    • 2016-03-15
    • 2016-09-29
    • 1970-01-01
    • 2013-05-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多