I am creating a rails app and have used this code in one of my methods
item_numbers.inject(0) {|sum, i| sum + i.amount}
item_numbers is an array of objects from my item_numbers table. The .amount method that I apply to them looks up the value of an item_number in a separate table and returns it as a BigDecimal object. Obviously the inject method then adds all of the returned i.amount objects and this works just fine.
I am just curious as to why it didn't work when I wrote this statement as
item_numbers.inject {|sum, i| sum + i.amount}
According to my trusty pickaxe book these should be equivalent. Is it because i.amount is a BigDecimal? If so, why does it now work? If not, then why doesn't it work.