Las validaciones son una de las parte fundamentales al momento de trabajar con modelos, ya que a partir de ellas seremos capaces de establecer ciertas reglas de negocios para nuestros objetos. Pudiendo así añadir una capa extra de seguridad al momento de persistir nuestra información, evitando así incongruencia en nuestra base de datos. 🤯
Con el Active Record de Ruby on Rails existen múltiples formas en las cuales podemos validar nuestros modelos. Y las validaciones más comunes (me atrevo a decir) son 3
- Validación de presencia:
class Video < ApplicationRecord
validates :title, presence: true
end
Video.create(title: "Introducción al curso").valid?
true
Video.create(title: nil).valid?
false
- Validación de valor unico.
class User < ApplicationRecord
validates :email, uniqueness: true
end
- Validación de longitud
class User < ApplicationRecord
validates :password, length: { in: 6..20 }
end
Nota: Las validaciones, a diferencias de los constraints, serán ejecutadas a nivel clase y no a nivel base de datos. Que si bien esto tiene muchas ventajas, es posible saltar las validaciones mediante diferentes métodos, como lo puede ser apdate_attribute.
Nuevos métodos
Cómo podemos observar, a través del método validates seremos capaces de registrar nuevas validaciones sobre nuestros modelos, sin embargo existen un par de métodos que cumplen con la misma función. Y de hecho son mucho más legibles.
- Validación de presencia.
validates_presence_of :attribute, message: 'Mensaje'
Utilizando el método validates_presence_of seremos capaces de validar que un atributo, obligatoriamente, posea algún valor.
- Validación de valor unico.
validates_uniqueness_of :email, message: 'Mensaje'
Utilizando el método validates_uniqueness_of seremos capaces de validar que el valor de atributo se unico en la tabla.
- Validación de longituda.
validates_length_of :members, :minimum => 1
Utilizando el método validates_length_of seremos capaces de validar que el valor de atributo posea cierta longitud pre establecidas.
validates_length_of :code, :minimum => 3
-
check_circle_outlineMódulo 1 | 7 clases
Introducción
expand_more -
check_circle_outlineMódulo 2 | 30 clases
Modelos
expand_more-
done_all
Clase 1
Crear nuevo objeto
-
done_all
Clase 2
Callbacks
-
done_all
Clase 3
Callbacks Parte 2
-
done_all
Clase 4
Callbacks Ruby on Rails
-
done_all
Clase 5
Validaciones
-
done_all
Clase 6
Validaciones pt2
-
done_all
Clase 7
Validaciones pt3
-
done_all
Clase 8
Validaciones pt4
-
done_all
Clase 9
validaciones Ruby on Rails
-
done_all
Clase 10
Validaciones propias
-
done_all
Clase 11
Validaciones propias pt2
-
done_all
Clase 12
Obtener elementos
-
done_all
Clase 13
Condiciones
-
done_all
Clase 14
Operador logico or
-
done_all
Clase 15
Operadores relacionales
-
done_all
Clase 16
Busqueda por id
-
done_all
Clase 17
Busqueda por columnas
-
done_all
Clase 18
Limit
-
done_all
Clase 19
Existencia de elementos
-
done_all
Clase 20
Selecionar columnas
-
done_all
Clase 21
First or create
-
done_all
Clase 22
Scopes
-
done_all
Clase 23
Scopes pt2
-
done_all
Clase 24
Actualizar registros
-
done_all
Clase 25
Actualizar registros pt2
-
done_all
Clase 26
Actualizar registros pt3
-
done_all
Clase 27
Actualizar registros pt4
-
done_all
Clase 28
Eliminar registros
-
done_all
Clase 29
Monitorear cambios
-
done_all
Clase 30
Monitorear cambios pt2
-
-
check_circle_outlineMódulo 3 | 15 clases
Relaciones
expand_more -
check_circle_outlineMódulo 4 | 9 clases
Extras
expand_more