2017-06-27 16 views
0

私は、Devilsを使って自分のRails 5アプリケーションにUserモデルを持っています。新しく作成したユーザーに空の入れ子オブジェクトを追加する

私も関係があります:ユーザーが属するアカウントです。

ここで、新しいユーザーを作成すると、そのユーザーのために新しい空のアカウントが自動的に作成されます。私はこのような何かをしたいと思います

def create 
    super 
    end 

:工夫コントローラで

def create 
    super 
    user.account.create() 
    end 
+0

ことの一つは、Account.create(:user.id @ USER_ID)です。多分それらの行に沿った何か。 – ThorTL67

答えて

0

、ユーザーオブジェクトは、デフォルトでresourceと呼ばれている

は、私はすでに登録コントローラと方法を持っています。したがって、このようなものは動作します:

def create 
    super 
    if resource.persisted? # user has been created with no errors 
    resource.account.create # assuming it will pass validations without arguments 
    end 
end 

もう一つの方法は、@ジュリアン-JSが述べたように、後に作成フックでアカウントを作成することであるが、代わりにあなたがafter_commit(read more about the difference)を使用することができafter_createの:

after_commit :create_account, on: :create 

def create_account 
    self.account.create unless self.account.present? 
end 
0

あなたはそのようなものをお探しですか?あなたが行うことができ、あなたのモデルでは

User.rb

after_create do 
    self.account = Account.create()  if self.account.nil? 
end 
関連する問題