Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Price
- def initialize(value = 0, currency = '')
- @value,@currency = value, currency
- end
- def mongoize
- [@value,@currency.to_s]
- end
- class << self
- def demongoize(object)
- if object
- cur = object[1] || ''
- Price.new(object[0], cur)
- else
- Price.new()
- end
- end
- def mongoize(object)
- case object
- when Price then object.mongoize
- when Array then Price.new(object[0], object[1]).mongoize
- else object
- end
- end
- def evolve(object)
- case object
- when Price then object.mongoize
- else object
- end
- end
- end
- class Financial
- include Mongoid::Document
- field: quote, type: Price
- field: tree, type: Hash
- end
- revenue = Price.new(10,'USD')
- record = Financial.new()
- record.quote = revenue
- record.save # All works so far
- record.tree = { data: [10,'USD']}
- record.save # this works too
- record.tree = { data: revenue}
- record.save # here I get the undefined bson_type for Price error.
Add Comment
Please, Sign In to add comment