2012-02-18 61 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型号有验证,可能是失败。

相关问题