【问题标题】:Child model not saved during seed种子期间未保存子模型
【发布时间】:2014-04-01 00:46:29
【问题描述】:

我正在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!

【问题讨论】:

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


    【解决方案1】:

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

    你应该首先savecontact或使用existing,这样rails会自动将contact_id放入usermodel

    【讨论】:

    • 我不喜欢它,但它有效。我习惯于 C#(LINQ,EF),当父级提交到数据库时,子模型会自动更新其父级 ID。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-05-31
    • 2013-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-21
    • 2020-05-18
    相关资源
    最近更新 更多