class VProduct
include Mongoid::Document
include Mongoid::Timestamps
include Tire::Model::Search
include Tire::Model::Callbacks
field :name
belongs_to :v_group
embeds_many :p_images
index_name 'v-products'
def to_indexed_json
self.to_json
end
end
class SubCalculation
include Mongoid::Document
embedded_in :calculation
embeds_many :left_products, class_name: "VProduct"
embeds_many :right_products, class_name: "VProduct"
end
a = Calculation.new
a.build_subcalculation
a.subcalculation.left_products << [VProduct.first]
a.subcalculation.left_products << [VProduct.last]
a.subcalculation.left_products.count
=> 2
a.save
=>true
a.subcalculation.left_products << [VProduct.where(vid: 45).first]
=>true
a.subcalculation.left_products.count
=> 3
a.changed?
=> false
a.subcalculation.changed?
=>false
a.save
=>true