Ruby on rails - setear mensaje diferente para errores



   AUTOR PREGUNTA

Publicado 10 junio 2014 - 21:00

¿En rails cómo puedo setear un “:message” diferente para cada uno de los errores posibles?


1 personas más tuvieron esta duda Yo también

 

Publicado 10 junio 2014 - 23:13

Puedes probar con esto, no lo he probado pero quizá te funcione:

validates_numericality_of :price, :greater_than_or_equal_to => 0, :message => "var1" validates_numericality_of :price, :less_than => 1000000, :message => "var2"

 

Publicado 10 junio 2014 - 23:22

En el modelo.rb puedes colocar lo siguiente:

def validate
if self.price < 0
errors.add(:price, "custom message")
elsif
self.price > 1000000
errors.add(:price, "custom message")
end
end


Publicado 11 junio 2014 - 04:01

Sí estas usando Rails 3 puedes crear un validador custom, por ejemplo:

class BetterNumericalityValidator < ActiveModel::EachValidator
def validate_each(record,attribute,value)
if value < 0
record.errors[attribute] << "must be greater than or equal to 0"
elsif value >= 1000000
record.errors[attribute] << "must be less than 1000000")
end end end

   AUTOR PREGUNTA

Publicado 11 junio 2014 - 04:20

Gracias, por cierto bueno saber para la versión 3 de rails