可能重复:
在 Rails 中设置默认值的正确方法
我有两个数据表:
1) 用户
2)个人资料(具有字段user_id)
它们通过以下方式关联:
- 用户 has_one 个人资料
- 个人资料 belongs_to 用户
每次创建新用户时,是否可以在配置文件表中保存一些默认值?
谢谢你的帮助!
可能重复:
在 Rails 中设置默认值的正确方法
我有两个数据表:
1) 用户
2)个人资料(具有字段user_id)
它们通过以下方式关联:
每次创建新用户时,是否可以在配置文件表中保存一些默认值?
谢谢你的帮助!
您可以使用 ActiveRecord回调创建默认配置文件。
只需创建一个方法,并将其用作 :after_create
class User < ActiveRecord::Base
has_one :profile
after_create :create_default_profile
def create_default_profile
profile = build_profile
# set parameters
profile.save
end
end
build_profile 构建并链接 Profile 的实例,但不保存它。create_profile 相同,但它也保存对象。有关完整说明,请参阅ActiveRecord 文档。
您可以将属性添加到 build_ 和 create_profile 作为哈希,因此您可能可以将 create_default_profile 减少到一行:
def create_default_profile
profile = create_profile :some => 'attirbute', :to => 'set'
end
是的,您可以为配置文件添加默认值。
我正在为用户设置一些配置文件的值member_standing
和points
属性。
在为用户控制器创建操作
def create
@user = User.new(params[:user])
profile = @user.profiles.build(:member_standing => "satisfactory", :points => 0)
if @user.save
redirect_to @user
else
render "new"
end
end