Ruby · Intermediário · Inglês · Técnico
callback
Gancho do ActiveRecord que roda código em momentos do ciclo de vida do registro, como before_validation, after_create ou before_save. É declarado no model com métodos ou lambdas.
Onde usar
Aparece em normalização de dados, como limpar um e-mail antes de salvar. Callbacks com efeitos externos, como enviar e-mail, viram armadilha e merecem um service object.
Em código
class Usuario < ApplicationRecord
before_validation :limpar_email
def limpar_email
self.email = email.to_s.strip.downcase
end
endExemplos
Normalize the email in a before_validation callback.
Normalize o e-mail num callback before_validation.
Too many callbacks make the model hard to follow.
Callbacks demais deixam o model difícil de acompanhar.
Cuidado
Desde o Rails 5, devolver false num before_* não cancela mais a cadeia; use throw :abort.
Sinônimos
gancho