禁用mongoid belongs_to关联验证

时间:2016-07-22 13:04:34

标签: ruby-on-rails mongoid

A有两个mongoid模型,它们之间有一个简单的has_many / belongs_to关系:

class Lot
  include Mongoid::Document
  has_many :journal_items
end

class JournalItem
  include Mongoid::Document
  belongs_to :lot
end

问题是我无法在没有JournalItem的情况下创建Lot,因为mongoid默认情况下会在JournalItem.lot_id上添加非空验证。

JournalItem.create!
# raises validation error "Lot can't be blank"

如何禁用它?

我使用带有Rails 5的mongoid master。

1 个答案:

答案 0 :(得分:26)

好的,我已经明白了 - mongoid协会有optional选项,似乎没有很好地记录。

所以它应该是:

class JournalItem
  include Mongoid::Document
  belongs_to :lot, optional: true
end