Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 8 additions & 5 deletions README → README.asciidoc
Original file line number Diff line number Diff line change
Expand Up @@ -3,22 +3,25 @@
acts_as_money is a plugin that makes it easier to work with the money gem.

class Product < ActiveRecord::Base
acts_as_money
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
acts_as_money
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.
acts_as_money allows you to pass a String, Integer, 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 = Room.new rate: "100.00"
r.rate # returns <Money:0x249ef9c @currency="USD", @cents=10000>

Integers are parsed as cents, not as whole currency amounts.

= 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.
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.