Problemas con validates_format_of


#1

Hola

Quisiera añadir una validación para un campo con un valor monetario (con
coma).
Por ejemplo: 123,12

Mi expresión regular es /\A\d+(,\d{1,2}\Z)?/

y la he testeado en http://www.rubular.com/ (por cierto muy buen
recurso…)

En el modelo tengo

validates_format_of :precio, :with => /\A\d+(,\d{1,2}\Z)?/i

El problema está en que no valida… se traga cualquier cosa que ponga
en el campo precio…

Alguien sabe donde puede estar el fallo?

Gracias


#2

Prueba con esta otra:

/^\d+(,\d{1,2})?$/

Me lo ha mostrado el Rubular… la expresión que tu propones hace match
con ee34,34rr

Suerte
f.

El día 28 de noviembre de 2008 13:07, Pedro andrés Pinto mena
removed_email_address@domain.invalid
escribió:> Hola


#3

Y hace falta chequear el formato para validar que lo se mete es un
precio?

En la
migración:
t.decimal :precio, :precision => 10, :scale => 2, :default => 0, :null
=> false

En el modelo:

validates_numericallity_of :price

En la vista (o donde necesites mostrarlo, pdf, xls, etc)

number_to_currency @product.price

Con eso tendrás siempre un número, se mostrará siempre con formato de
moneda y puedes entrar cualquier valor númerico. Total, 5 es igual a 5.00

No se, solo una idea…