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.

Definiendo callbacks

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:
1
class Article < ApplicationRecord
2
after_crate :print_message
3
4
private
5
def print_message
6
puts "Artículo creado!"
7
end
8
end
Copied!
En este caso el método print_message se va a ejecutar después de que un artículo sea creado:
1
$ rails c
2
> Article.create(name: "Primer artículo")
3
Artículo creado!
Copied!

¿Para qué sirven los callbacks?

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!

Callbacks disponibles

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

Deteniendo la operación

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 3yr ago