Mongoid:嵌入文档的父级从字段默认lambda返回nil

时间:2018-08-13 14:58:22

标签: ruby-on-rails ruby mongoid

我有两个Mongoid模型定义为

post.wp:featuredmedia.media_deatils.sizes.large.source_url

如果我创建一个具有class Owner include Mongoid::Document include Mongoid::Timestamps embeds_many :pets, class_name: 'Pet', inverse_of: :owner field :special_unit, type: String end class Pet include Mongoid::Document include Mongoid::Timestamps embedded_in :owner, inverse_of: :pets field :special_unit, default: lambda { if owner owner.special_unit else 'default_value' end } end 字段的持久性Owner

special_unit

主人宠物具有owner = Owner.create(special_unit: 'foo') owner.pets.create owner.pets.first.special_unit => 'default_value' 作为值特殊单位。这是因为default_value在默认调用该字段的lambda中返回了pet。如果我在lambda内调用nil,则也会返回_parent。有人知道为什么吗?

对于其他情况,我可以在nil的实例上调用#owner#_parent并返回期望的所有者。在字段默认分配期间,将返回nil。

我正在使用Mongoid 6.4

0 个答案:

没有答案