как сохранить родственные модели с ненулевым внешним ключом - PullRequest
0 голосов
/ 06 февраля 2011

У меня есть две модели:

Пользователь

has_one :email

E-mail

belongs_to :user

Я поместил внешний ключ email_id (NOT NULL) в таблицу пользователей. Сейчас я пытаюсь сохранить его следующим образом:

@email = Email.new(params[:email])
@email.user = User.new(params[:user])
@email.save

Это вызывает исключение из БД, поскольку ограничение внешнего ключа не выполняется (NULL вставляется в email_id) Как я могу элегантно решить эту проблему или мое моделирование данных неверно?

Ответы [ 2 ]

1 голос
/ 06 февраля 2011

Хум ... У вас есть

has_one :email

в вашей пользовательской модели?

Если это так, я думаю, что есть проблема.Вы должны использовать has_one в модели пользователя, если это таблица электронной почты с ключом foreign_key.

В таблице электронной почты, я думаю, должен быть столбец user_id.

1 голос
/ 06 февраля 2011

Это должно работать как положено.

@email = Email.create(params[:email])
@email.user.create(params[:user])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...