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