tapajos/brazilian-rails — pull request #27 by abernardes (2011-12-31 16:19:25+00:00)
Title: brdinheiro - Atualização/recuperação do valor de atributo usado como dinheiro

Encontrei um problema no brDinheiro que não permite a recuperação de atributo de um objeto ActiveRecord que está sendo usado como dinheiro, quando este atributo é inicializado pelo construtor da classe. Acho que é mais fácil de entender em uma sessão do console. Estou usando o seguinte *model*:

```ruby
class Grana < ActiveRecord::Base
usar_como_dinheiro :valor
end
```
No console:

```
1.9.3-p0 :001 > g = Grana.new({ :valor => 10.reais })
=> #, created_at: nil, updated_at: nil>
1.9.3-p0 :002 > g.valor
=> 10,00
1.9.3-p0 :003 > g.valor = 15.reais
=> 15,00
1.9.3-p0 :004 > g.valor
=> 10,00

```

Vejam que ao atribuir um novo valor, não é possível recuperar depois este novo valor.

Simulei o problema da seguinte forma:

Usando **Rails 3.1.3** e **Ruby 1.9.3**

1. Criei um projeto novo do rails:
`rails new teste -T`
2. Incluí o brazilian-rails no meu Gemfile:
`gem 'brazilian-rails'`
3. Rodei o bundle: `bundle install`
4. Criei um modelo simples: `rails g model Grana valor:decimal`
5. Rodei a migration: `rake db:migrate`
6. Incluí a linha `usar_como_dinheiro :valor` no model, que ficou igual ao que eu coloquei acima.
7. Acessei o console (`rails c`) e simulei conforme a sessão do console acima.

Anexei uma sugestão de correção nesta issue, caso queiram aproveitá-la :-)