在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
或其他东西在模型中创建关联记录是否更好?
感谢您的帮助。
答案 0 :(得分: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