Forum: Rails-ES Coma/Punto Decimal Campo de Entrada

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.
Dfe3dd2d118ce549762f1214c066ea26?d=identicon&s=25 Ja GG (nodlag)
on 2009-05-06 20:22
Buenas tardes, tengo un problema, tengo un campo decimal en la base de
datos. Y me gustaría que al poner los valores con comas en el
formulario(Ej. 12,5) el valor lo guardase, el problema esque no lo
interpreta correctamente a no ser que sea con un punto (Ej. 12.5).

He estado buscando en google y no he visto forma de que a la hora de
recibir el campo en el formulario, interprete correctamente la coma.

Esto es lo que guarda en la bdd.
12,5 => 12
12.5 => 12.5


Gracias.
0e34c56054c414263e933a1b8b3d0d55?d=identicon&s=25 Ruben Davila (rdavila)
on 2009-05-06 21:05
(Received via mailing list)
Tal vez una salida podria ser redefinir el 'writer' de este attributo en
tu
modelo y reemplazar su valor mediante gsub:

def attr=(value)
  write_attribute(:attr, value.gsub(/,(\d+)\Z/,'.\1')
end

Saludos!
Dfe3dd2d118ce549762f1214c066ea26?d=identicon&s=25 Ja GG (nodlag)
on 2009-05-07 16:53
Pues parece que sí que funciona. Me ha tocado hacer un pequeño retoque a
esa función, puesto que daba error al intentar convertir la coma a punto
ya que al ser un Decimal daba error. Así que la he dejado así:

def attr=(value)
  write_attribute(:attr, value.to_s.gsub(/,(\d+)\Z/,'.\1')
end


Gracias!
This topic is locked and can not be replied to.