A set of helper methods for working with money-based attributes.
Let's say you have the following Car class:
class Car
include MoneyColumn::StoresMoney
attr_accessor :price_in_cents
stores_money :price
def currency
"USD"
end
end
So let's go ahead and store a price_in_cents for the car:
car = Car.new
car.price_in_cents = 5000
Since we want to show this in a view as $ 50.00
, we can now do the following:
> car.price.format
=> "$50.00"
> car.price
=> #<Money:0x1016e9fb8 @cents=5000, @bank=#<Money::VariableExchangeBank:0x10143f6f0 @mutex=#<Mutex:0x10143f678>, @rates={}>, @currency="USD">
If the currency
instance method is defined on your class, MoneyColumn will use that. Otherwise, it will use the default currency specified in the Money gem.
When you define stores_money :price
, MoneyColumn looks for an attribute named price_in_cents
to use for its conversion.
If you want to explicity tell MoneyColumn where to look for the cents_attribute, do the following:
class CarWithSpecifiedAttribute
include MoneyColumn::StoresMoney
attr_accessor :amount_in_cents
stores_money :price, :cents_attribute => "amount_in_cents"
end