pinmac
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
pinmac
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
[email protected]
escribió:> Hola
pinmac
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…