儿童模型在种子期间未保存

时间:2014-04-01 00:46:30

标签: ruby-on-rails activerecord ruby-on-rails-3.1 ruby-1.8.7

我正在创建联系人& seed.rb中数据库中的用户。使用下面的代码,联系人将被保存,但子用户不会。我错过了什么?我已尝试使用和不使用if语句,并且永远不会保存用户。

模型

class Contact < BaseModel
  #...
  has_one :user
end

class User < BaseModel
  #...
  belongs_to :contact
end

种子

contact = Contact.where({
  :first_name => "Some",
  :last_name  => "Person",
  :email      => "some.person@domain.com",
  :zip        => "12345"}).first_or_initialize
contact.build_user if contact.user == nil
contact.save!

1 个答案:

答案 0 :(得分:2)

如果您的contact不存在,则不会将contact_id放入用户模型中。

您应该先save contact或使用existing,以便导轨自动将contact_id放入user model