Guest User

Untitled

a guest
Apr 24th, 2018
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.94 KB | None | 0 0
  1. class Price
  2.  
  3. def initialize(value = 0, currency = '')
  4. @value,@currency = value, currency
  5. end
  6. def mongoize
  7. [@value,@currency.to_s]
  8. end
  9.  
  10. class << self
  11. def demongoize(object)
  12. if object
  13. cur = object[1] || ''
  14. Price.new(object[0], cur)
  15. else
  16. Price.new()
  17. end
  18. end
  19. def mongoize(object)
  20. case object
  21. when Price then object.mongoize
  22. when Array then Price.new(object[0], object[1]).mongoize
  23. else object
  24. end
  25. end
  26.  
  27. def evolve(object)
  28. case object
  29. when Price then object.mongoize
  30. else object
  31. end
  32. end
  33. end
  34.  
  35. class Financial
  36. include Mongoid::Document
  37.  
  38. field: quote, type: Price
  39. field: tree, type: Hash
  40. end
  41.  
  42. revenue = Price.new(10,'USD')
  43.  
  44. record = Financial.new()
  45. record.quote = revenue
  46. record.save # All works so far
  47.  
  48. record.tree = { data: [10,'USD']}
  49. record.save # this works too
  50.  
  51. record.tree = { data: revenue}
  52. record.save # here I get the undefined bson_type for Price error.
Add Comment
Please, Sign In to add comment