我有两种模式:
用户
has_one :email
电子邮件
belongs_to :user
我将email_id外键(NOT NULL)放在users表中。 现在我想用以下方式保存它:
@email = Email.new(params[:email])
@email.user = User.new(params[:user])
@email.save
这会引发db异常,因为不满足外键约束(NULL被插入到email_id中)。我怎样才能优雅地解决这个问题,或者我的数据建模是错误的?
答案 0 :(得分:1)
这应该按预期工作。
@email = Email.create(params[:email])
@email.user.create(params[:user])
答案 1 :(得分:1)
...坎 你有吗
has_one :email
在您的用户模型中?
如果是这样,我认为存在问题。如果是具有foreign_key的电子邮件表,则应在用户模型中使用has_one。
我认为你应该在电子邮件表中有一个user_id列。