создать запись в другом классе (таблица) - PullRequest
0 голосов
/ 18 февраля 2012

У меня есть класс 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

Как я могу написать это?

Ответы [ 2 ]

0 голосов
/ 19 февраля 2012
after_create :create_person

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

Но будьте осторожны, если вы хотите обновить личную запись при обновлении соответствующей пользовательской записи, используйте after_save и Person.find_or_create_by_email(self.email)

0 голосов
/ 18 февраля 2012

Код, который вы показываете, должен работать, единственная причина, по которой он может не работать, это проверки.

Выполнение create_person сделает save, а не save!.

Если у вас есть проверка на модели Person, это может быть сбой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...