我有一个班级人员和班级用户(来自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
我怎么能编码?
答案 0 :(得分:0)
您展示的代码应该有效, 它可能不起作用的唯一原因是验证。
执行create_person
将执行save
而不是save!
。
如果您对Person
模型进行了验证,则可能会失败。
答案 1 :(得分:0)
after_create :create_person
protected
def create_person
Person.create(self.attributes)
end
但请注意,如果您想在更新相应用户记录时更新人员记录,请使用after_save
和Person.find_or_create_by_email(self.email)