A necessidade é a mãe da invenção
Posted by André Ribeiro Camargo Tue, 25 Apr 2006 17:13:00 GMT
Como falei anteriormente, tenho brincado com o Globalize últimamente.
A primeira dificuldade que encontrei foi com relação a moedas. A implementação atual do Globalize exige que campos moeda sejam compostos de dois colunas na base de dados, uma para guardar a parte inteira do número e outra para armazenar a parte fracionária.
Além disso, precisamos usar Agregação para compor o campo, mais detalhes aqui.
Tenho utilizado Float para armazenar campos de moeda em minha aplicação, eu sei que isso pode vir a ser problemático devido aos arredondamentos ou até mesmo para efetuar comparações. Mesmo assim, não quero usar 2 campos para armazenar uma moeda.
Então comecei a implementar um plugin para Globalize que adiciona suporte a moedas que funcione do meu jeito. hehe
Pegue aqui o plugin e use-o da seguinte forma:
Model
class Produto < ActiveRecord::Base currency :preco end
Os validadores do Rails podem ser usados normalmente…
View
<%= @produto.preco %>vai retornar algo como R$1,99 (com locale configurado para pt-BR, claro)
<%= currency_field :produto, :preco %>
vai gerar um text_field específico para moedas ;-)
Controller
Não precisa mexer em nada (pelo menos a idéia é essa)
E era isso… Não preciso dizer que o código é EXTREMAMENTE EXPERIMENTAL, então… use por seu próprio risco.
Quem quiser ajudar, é bem-vindo! Quem sabe em um futuro próximo não teremos um framework que “fala a nossa língua”... não custa sonhar né!?
