親および埋め込みドキュメントに特定の属性を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