在不同的类(表)中创建记录

时间:2012-02-18 17:56:14

标签: ruby-on-rails

我有一个班级人员和班级用户(来自Devise)。 当有人注册时,在User类(表)中创建用户行(对象)。 我还希望user.rb模型在People类(表)中创建一个行(对象)。 (user.rb中也包含“has_one:person”。)

我尝试了以下但没有成功:

after_create :create_person

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

我怎么能编码?

2 个答案:

答案 0 :(得分:0)

您展示的代码应该有效, 它可能不起作用的唯一原因是验证。

执行create_person将执行save而不是save!

如果您对Person模型进行了验证,则可能会失败。

答案 1 :(得分:0)

after_create :create_person

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

但请注意,如果您想在更新相应用户记录时更新人员记录,请使用after_savePerson.find_or_create_by_email(self.email)