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
-
Módulo 1 | 7 clases
Introducción
expand_more-
play_circle_outline
Clase 1
Introducción al curso
-
play_circle_outline
Clase 2
¿Qué es un ORM?
-
play_circle_outline
Clase 3
Crear proyecto
-
play_circle_outline
Clase 4
Configuración de base de datos
-
play_circle_outline
Clase 5
Generar primera migración
-
play_circle_outline
Clase 6
Anotaciones
-
play_circle_outline
Clase 7
Rollbacks
-
-
Módulo 2 | 30 clases
Modelos
expand_more-
play_circle_outline
Clase 1
Crear nuevo objeto
-
play_circle_outline
Clase 2
Callbacks
-
play_circle_outline
Clase 3
Callbacks Parte 2
-
play_circle_outline
Clase 4
Callbacks Ruby on Rails
-
play_circle_outline
Clase 5
Validaciones
-
play_circle_outline
Clase 6
Validaciones pt2
-
play_circle_outline
Clase 7
Validaciones pt3
-
play_circle_outline
Clase 8
Validaciones pt4
-
play_arrow
Clase 9
validaciones Ruby on Rails
-
play_circle_outline
Clase 10
Validaciones propias
-
play_circle_outline
Clase 11
Validaciones propias pt2
-
play_circle_outline
Clase 12
Obtener elementos
-
play_circle_outline
Clase 13
Condiciones
-
play_circle_outline
Clase 14
Operador logico or
-
play_circle_outline
Clase 15
Operadores relacionales
-
play_circle_outline
Clase 16
Busqueda por id
-
play_circle_outline
Clase 17
Busqueda por columnas
-
play_circle_outline
Clase 18
Limit
-
play_circle_outline
Clase 19
Existencia de elementos
-
play_circle_outline
Clase 20
Selecionar columnas
-
play_circle_outline
Clase 21
First or create
-
play_circle_outline
Clase 22
Scopes
-
play_circle_outline
Clase 23
Scopes pt2
-
play_circle_outline
Clase 24
Actualizar registros
-
play_circle_outline
Clase 25
Actualizar registros pt2
-
play_circle_outline
Clase 26
Actualizar registros pt3
-
play_circle_outline
Clase 27
Actualizar registros pt4
-
play_circle_outline
Clase 28
Eliminar registros
-
play_circle_outline
Clase 29
Monitorear cambios
-
play_circle_outline
Clase 30
Monitorear cambios pt2
-
-
Módulo 3 | 15 clases
Relaciones
expand_more-
play_circle_outline
Clase 1
Modelo carrito de compras
-
play_circle_outline
Clase 2
Relación uno a muchos
-
play_circle_outline
Clase 3
Relación uno a uno
-
play_circle_outline
Clase 4
Añadir nuevo campo
-
play_circle_outline
Clase 5
Relación muchos a muchos
-
play_circle_outline
Clase 6
Listar productos
-
play_circle_outline
Clase 7
Includes
-
play_circle_outline
Clase 8
Calcular total
-
play_circle_outline
Clase 9
Through
-
play_circle_outline
Clase 10
Joins
-
play_circle_outline
Clase 11
Group by
-
play_circle_outline
Clase 12
Left Join
-
play_circle_outline
Clase 13
Actualizar carrito de compras
-
play_circle_outline
Clase 14
Múltiples productos
-
play_circle_outline
Clase 15
Múltiples productos pt2
-
-
Módulo 4 | 9 clases
Extras
expand_more-
play_circle_outline
Clase 1
Diagramas
-
play_circle_outline
Clase 2
Reload
-
play_circle_outline
Clase 3
Enums
-
play_circle_outline
Clase 4
Transacciones
-
play_circle_outline
Clase 5
Locks
-
play_circle_outline
Clase 6
Maquina de estados
-
play_circle_outline
Clase 7
Estados de un carrito de compras
-
play_circle_outline
Clase 8
Maquina de estados pt2
-
play_circle_outline
Clase 9
Callbacks Maquina de estados
-