require File.dirname(__FILE__) + "/../mongo_persist" def db Mongo::Connection.new.db('test-db') end class Order include MongoPersist attr_accessor :po_number, :customers mongo_reference_attributes ['customers'] fattr(:order_products) { [] } def products order_products.map { |x| x.product } end end class OrderProduct include MongoPersist attr_accessor :unit_price, :quantity, :product mongo_reference_attributes ['product'] end class Product include MongoPersist attr_accessor :name end class Customer include MongoPersist attr_accessor :email end [Order,Product].each { |x| x.collection.remove } @products = [Product.new(:name => 'Leather Couch'),Product.new(:name => 'Maroon Chair')].each { |x| x.mongo.save! } @customers = [Customer.new(:email => 'a'),Customer.new(:email => 'b')].each { |x| x.mongo.save! } @orders = [] @orders << Order.new(:customers => @customers, :po_number => 1234, :order_products => [OrderProduct.new(:unit_price => 1000, :quantity => 1, :product => @products[0])]).mongo.save! @orders << Order.new(:customers => @customers, :po_number => 1235, :order_products => [OrderProduct.new(:unit_price => 200, :quantity => 2, :product => @products[1])]).mongo.save! $orders = @orders