Forum: Rails-ES Problemas con validates_format_of

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
0fa891ba31c331a486eb7d11dff30305?d=identicon&s=25 Pedro P. (pinmac)
on 2008-11-28 13:07
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
Fernando Guillen (Guest)
on 2008-11-28 13:37
(Received via mailing list)
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
<ruby-forum-incoming@andreas-s.net>
escribió:> Hola
Jorge Calás Lozano (Guest)
on 2008-11-28 14:31
(Received via mailing list)
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....
This topic is locked and can not be replied to.