validates_numericality_of :atributo_a_validar, :opciones
Cuando el atributo al que se le desea validar si es numerico no cumple con lo que se le especifica en las opciones el mismo es agregado a una lista de errores que tiene el objeto del modelo.
:atributo_a_validar - es el atributo al cual deseamos validarle el largo
:opciones - las opciones deben ir separadas por comas
- :message => mensaje, nos permite cambiar el mensaje que está asociado por defecto a el error, el mensaje por defecto es el siguiente "is not a number".
- :on => nos define en que momento se va a hacer dicha validación por defecto es en el salvado del objeto, pero se puede especificar :create o :update.
- :only_integer => nos especifica que el objeto a validar solo puede ser un entero por defecto esta en false.
- :allow_nil => esquiva esta validación si el objeto es nil, esta opcion esta por defecto en false
- :greater_than => especifica que el valor del atributo debe ser mayor que el numero que le indiquemos.
- :greater_than_or_equal_to => especifica que el valor del atributo debe ser mayor o igual que el numero que le indiquemos.
- :equal_to => especifica que el valor del atributo debe ser igual que el valor que le indiquemos
- :less_than => especifica que el valor del atributo debe ser menor que el valor que le indiquemos
- :less_than_or_equal_to => especifica que el valor que le indiquemos debe ser menor o igual que el valor que le indiquemos
- :odd => indica que el atributo debe ser impar
- :even => nos indica que el atributo debe ser par
- :if => especifica un metodo, procedimiento o string que se utiliza para saber si realizar la validacion, este metodo debe retornar un valor booleano
- :unless => especifica un metodo, procedimiento o string que se utiliza para saber si no se debe realizar la validacion, este metodo debe retornar un valor booleano
Ejemplos:
Valida el atributo number del modelo cuando el mismo se actualiza
validates_numericality_of :number, :on => :update
Valida que el atributo number del modelo sea mayor que 10
validates_numericality_of :number, :greater_than => 10
Valida que el atributo number del modelo sea mayor o igual que 5 y menor que 10
validates_numericality_of :number, :greater_than_or_equal_to => 5, :less_than => 10
Valida que el atributo number del modelo sea igual a 2 si el atributo name es igual a "pepe"
validates_numericality_of :number, :equal_to => 2, :if => :name_validation
def name_validation
self.name == "pepe"
end
No hay comentarios:
Publicar un comentario