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 回答