how to save related models with non-null foreign k

2019-08-16 05:04发布

I have two models:

User

has_one :email

Email

belongs_to :user

I put the email_id foreign key (NOT NULL) inside users table. Now I'm trying to save it in the following way:

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

This raises a db exception, because the foreign key constraint is not met (NULL is inserted into email_id). How can I elegantly solve this or is my data modeling wrong?

2条回答
孤傲高冷的网名
2楼-- · 2019-08-16 05:48

Hum... Do you have

has_one :email

in your user model?

If it's the case, I think there is a problem. You should use has_one in the user model if it's the email table that has the foreign_key.

You should have a user_id column in the email table I think.

查看更多
The star\"
3楼-- · 2019-08-16 06:06

This should work as expected.

@email = Email.create(params[:email])
@email.user.create(params[:user])
查看更多
登录 后发表回答