0

我有 2 个表:联系人和用户(设计)。我想在每次创建联系人时创建一个用户。联系人belongs_to :user 用户has_one :contact

当您添加新联系人时,contact.rb 文件中的以下代码会创建用户:

before_create :create_user

protected
def create_user
  self.user = User.new({ :email => self.email, :password => '123456' })
  return user.save
end

但是,联系人字段 user_id(外键)没有更新为新的用户 ID。怎么能做到这一点?

谢谢!

4

1 回答 1

2

试试这个

def create_user
  self.user = User.create({ :email => self.email, :password => '123456' })
end

我的猜测是关联没有被注册,因为在User.new调用之后对象还没有被保存到数据库中并且没有被分配一个 id 属性,而 id 属性是记录关联所必需的。User.create初始化对象并一步将其保存到数据库中(假设所有验证都通过)。

于 2012-04-30T17:50:41.173 回答