Como usar o Dinheiro em seu ActiveRecord?
-
Arquivo 001_create_lancamentos.rb:
class CreateLancamentos < ActiveRecord::Migration def self.up create_table :lancamentos do |t| t.column :descricao, :string, :null => false t.column :valor, :decimal, :precision => 14, :scale => 2 t.column :mensalidade, :decimal, :precision => 14, :scale => 2 end end def self.down drop_table :lancamentos end end -
Arquivo lancamento.rb:
class Lancamento < ActiveRecord::Base usar_como_dinheiro :valor, :mensalidade end -
No console (script/console):
Loading development environment. >> lancamento = Lancamento.new => #<Lancamento:0x9652cd8 @attributes={"descricao"=>nil, "valor"=>#<BigDecimal:9657008,'0.0',4(4)>, "mensalidade"=>#<BigDecimal:9656e8c,'0.0',4(4)>}, @new_record=true> >> lancamento.valor = 100 => 100 >> lancamento.valor => #<Dinheiro:0x9650f3c @quantia=10000> >> lancamento.valor.real => "R$ 100,00" >> lancamento.valor = 100.50 => 100.5 >> lancamento.valor.real => "R$ 100,50" >> lancamento.valor = "250.50" => "250.50" >> lancamento.valor.real => "R$ 250,50" >> lancamento.valor = 354.58.reais => #<Dinheiro:0x9646384 @quantia=35458> >> lancamento.valor.real => "R$ 354,58" >> exit