我认为与其在父文档和嵌入文档中保留 nil/null 的某些属性(例如,如果不存在价格,则为订单总数),我最好根本不保存它们。如何在保存之前删除 nil 的属性?
# embedded order position for each order
class Orderitem
include Mongoid::Document
field :quantity, :type => Integer
field :unit_price, :type => Integer
field :total, :type => Integer
field :economical_potential, :type => Integer
embedded_in :order
belongs_to :supplier
belongs_to :item
before_save :remove_empty_fields
private
def remove_empty_fields
attributes.each do |attr_name, value|
if value.nil?
# don't save attribute
end
end
end
end