Problema validación de precios con rails



   AUTOR PREGUNTA

Publicado 09 junio 2014 - 22:38

Estoy trabajando con rails usando expresiones regulares para validar precios de productos pero si escribo una palabra pasa y se guarda en base de datos con el valor cero, les dejo mi regex:

PRECIO_REGEX = /^([1-9]\d{0,5}|0)(\.\d{1,2})?$/
validates :price, :presence => true, :format => PRECIO_REGEX

Gracias de antemano por la ayuda.


¿Tienes la misma pregunta? Yo también

 

Publicado 10 junio 2014 - 04:06

Esto no lo he probado, pero parece que el problema es en tu segunda línea:

validates :price, :presence => true, :format => { :with => PRECIO_REGEX }

 

Publicado 10 junio 2014 - 04:13

Siento que es una mala idea que uses expresiones regulares para validar ese tipo de datos, es mejor ir por algo mucho más seguro, como por ejemplo la utilidad de rails validates_numericality_of, te dejo un ejemplo:

class Product < ActiveRecord::Base
validates_numericality_of :price, :greater_than => 0, :less_than => 1000000
end

   AUTOR PREGUNTA

Publicado 10 junio 2014 - 05:04

Excelente esa opcción Nieves, ya retire el regex, gracias!