У меня есть класс People и класс User (от 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
Как я могу написать это?
after_create :create_person protected def create_person Person.create(self.attributes) end
Но будьте осторожны, если вы хотите обновить личную запись при обновлении соответствующей пользовательской записи, используйте after_save и Person.find_or_create_by_email(self.email)
after_save
Person.find_or_create_by_email(self.email)
Код, который вы показываете, должен работать, единственная причина, по которой он может не работать, это проверки.
Выполнение create_person сделает save, а не save!.
create_person
save
save!
Если у вас есть проверка на модели Person, это может быть сбой.
Person