RoR Devise创建用户

时间:2012-04-30 17:26:59

标签: ruby-on-rails devise

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

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进行更新。 怎么能做到这一点?

谢谢!

1 个答案:

答案 0 :(得分:2)

试试这个

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

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