forked from timcowlishaw/acts_as_money
-
Notifications
You must be signed in to change notification settings - Fork 1
/
README
37 lines (26 loc) · 1.38 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
Money
=====
NOTE: this fork fixes the init.rb file.
acts_as_money is a plugin that makes it easier to work with the money gem. It's available in Rubygems - just 'gem install acts_as_money'.
class Product < ActiveRecord::Base
acts_as_money
money :price
end
This assumes that there are 2 columns in the database, cents (integer) and currency (string). These fields can be changed by setting the :cents and :currency options. To use the default currency, you can simple set :currency to false
class Room < ActiveRecord::Base
acts_as_money
money :rate, :cents => :rate_in_cents, :currency => :rate_currency
money :discount, :cents => :discount_in_cents, :currency => false
end
By default, your money field will default to a value of 0. If you require it to default to nil, you may set the :allow_nil option:
class Meal < ActiveRecord::Base
acts_as_money
money :bill, :allow_nil => true
end
m = Meal.new
m.bill #returns nil
r = Room.new
r.rate #returns <Money:0x24fd53a6 @currency="USD", @cents=0>
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>