我有两个数据表:
1)用户
2)配置文件(具有字段user_id)
他们通过以下方式联系在一起:
每次创建新用户时,是否有可能在配置文件表中保存一些默认值?
感谢您的帮助!
答案 0 :(得分:1)
您可以使用ActiveRecord callbacks创建默认个人资料。
只需创建一个方法,并将其用作: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 documentation。
您可以将build_和create_profile的属性添加为哈希,因此您可以将create_default_profile减少为一行:
def create_default_profile
profile = create_profile :some => 'attirbute', :to => 'set'
end
答案 1 :(得分:0)
是的,您可以为个人资料添加默认值。
我为用户设置了个人资料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