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é!?

Posted in , ,  | no comments

Comments

(leave url/email »)

   Comment Markup Help Preview comment