2012-02-18 57 views
0

我有一個班級People和班級User(來自Devise)。 當某人註冊用戶行(對象)在用戶類(表)中創建時。 我還想用user.rb模型在People類(表)中創建一個行(對象)。 (該user.rb也有 「HAS_ONE:人。」 在它)創建一個不同類別的記錄(表格)

我嘗試沒有成功如下:

after_create :create_person 

protected 
def create_person 
    self.create_person email: self.email 
end 

我怎麼能這樣的代碼?

回答

0
after_create :create_person 

protected 
def create_person 
Person.create(self.attributes) 
end 

,但照顧,如果你想更新時,相應的用戶記錄更新使用after_savePerson.find_or_create_by_email(self.email)

+0

我可以設置在新的Person(電子郵件)只有一個屬性的個人記錄。現在我得到「unknown attribute:encrypted_pa​​ssword」。 – Reddirt 2012-02-18 21:42:46

+0

是的,當然,請嘗試Person.create(:email => self.email) – mohamagdy 2012-02-18 22:59:21

0

您顯示的代碼應該工作, 它可能無法工作的唯一原因是驗證。

create_person將做save不是save!

如果您對Person型號有驗證,可能是失敗。

相關問題