acts_as_money

an Active Record plugin that makes it easier to work with the money gem

48
40
Ruby

= ActsAsMoney

acts_as_money is a plugin that makes it easier to work with the money gem.

class Product < ActiveRecord::Base
money :price
end

This assumes that there are 2 columns in the database, price_in_cents (integer) and currency (string). These fields can be changed by setting the :cents and :currency options. To use the default currency (USD), you can simply leave off :currency.

class Room < ActiveRecord::Base
money :rate, :cents => :rate_in_cents, :currency => :rate_currency
money :discount, :cents => :discount_in_cents, :currency => false
end

acts_as_money allows you to pass a String, Fixnum, Float or Money object as a parameter to the setter, and it will call #to_money to convert it to a Money object. This makes it convenient for using money fields in forms.

r = Room.new :rate => “100.00”
r.rate # returns <Money:0x249ef9c @currency=“USD”, @cents=10000>

= Compatibility

This plugin is compatible with the current edge-rails that is slated to be 2.2. If you are using Rails <= 2.1, check out the “rails-2.1” tag from git.