0

Ruby on Railsでは、新しいものが作成されたときに、そのユーザーに関連付けられたレコードをuser自動的に作成したいと思います。preference

これは私のコントローラーです:

class UsersController < ApplicationController

  def create
    @user = User.new(params[:user])
    if @user.save
      @user.build_preference 
      redirect_to root_path, :notice => "User created."
    else
      render :new
    end
  end

end

しかし、何らかの理由でこれを機能させることができません。ユーザーは正常に保存されますが、データベースを確認すると、関連するpreferenceレコードがありません。

ここで何が欠けていますか?

を使用してモデル内から関連レコードを作成する方が良い:before_createですか?

助けてくれてありがとう。

4

1 に答える 1

1

あなたがする必要がありますsave

def create
  @user = User.new(params[:user])
  if @user.save
    pr = @user.build_preference
    pr.save!
    redirect_to root_path, :notice => "User created."
  else
    render :new
  end
end
于 2013-02-19T18:33:39.307 に答える