ActiveRecord - Callbacks
Los callbacks son métodos que se invocan en ciertos momentos del ciclo de vida de un modelo: cuando se crea, cuando se actualiza, cuando se elimina, etc.
Para definir un callback debes realizar dos pasos:
- 1.Registrar el callback.
- 2.Escribir el método que se va a ejecutar cuando ocurra el callback.
Por ejemplo, si queremos imprimir "Artículo creado" después de que se cree un artículo haríamos lo siguiente:
class Article < ApplicationRecord
after_crate :print_message
private
def print_message
puts "Artículo creado!"
end
end
En este caso el método
print_message
se va a ejecutar después de que un artículo sea creado:$ rails c
> Article.create(name: "Primer artículo")
Artículo creado!
Los callbacks se pueden utilizar para toda clase de tareas:
- Enviar correos
- Actualizar campos calculados.
- Llamar a servicios externos.
- Crear otros registros en otras tablas.
Entre muchos otros!
Existe una gran variedad de callbacks que puedes utilizar en tus modelos. Los más importantes son:
Nombre | ¿Cúando se ejecuta |
---|---|
before_create | Antes de crear el registro |
after_create | Después de crear el registro |
before_update | Antes de actualizar el registro |
after_update | Después de actualizar el registro |
before_save | Antes de crear o actualizar |
after_save | Después de crear o actualizar |
before_destroy | Antes de eliminar el registro |
after_destroy | Después de eliminar el registro |
before_validation | Antes de que se valide el registro |
after_validation | Después de que se valida el registro |
Si cualquier
before_
callback retorna false
o lanza una excepción, la operación se cancela.Los
after_
callbacks solo pueden detener la operación lanzando una excepción.Se recomienda lanzar
ActiveRecord::Rollback
o ActiveRecord::RecordInvalid
.Last modified 4mo ago