0

什么是正确的轨道的方式来创建在创建数据库中的一行?例如,你有,你创建一个新的用户ActiveRecord的钩子在数据库创建时创建的行

User.rb model 
user_id 
user_id =1 

现在我正在寻找一种方式来创建数据库在其他型号的新的对象/行例如用户模型

Account.rb model 
Should create a new row in account table with user_id = same as user_id above 

目前我用一个

= f.fields_for :profile do |f| 
    = f.text_field :some_value_for_profile 

在我的用户创建视图,以便一些值写入数据库在用户创建后,但这不是“铁轨方式”,并希望使用ActiveRecord钩子来做到这一点。

+0

你有用户和配置文件之间的通常关联吗?你在使用accepting_nested_attributes_for吗? – 2012-01-30 11:27:31

回答

1

如果从视图收集的客户模型中的数据,您应该创建用户记录的账户记录。

假设有一个具有

#in controller 
@user = User.new params[:users] 
@account = @user.build_account params[:account] 
@user.save 

两个(用户HAS_ONE账户)之间的一个关系。否则,如果你正在试图创建的所有新用户默认帐户记录无需在用户的时间收集帐户数据注册,你可以有一个after_create回调

#in user.rb 
after_create :add_account 

def add_account 
    self.create_account 
end 
+0

正是我所期待的thx – Rubytastic 2012-01-30 13:11:17