Ho pensato di utilizzare osservatori o callback. Cosa e quando si dovrebbe usare un osservatore?Osservatori e callback
F.e. si potrebbe fare seguente:
# User-model
class User << AR
after_create :send_greeting!
def send_greeting!
UserNotifier.deliver_greeting_message(self)
end
end
#observer
class UserNotifier << AR
def greeting_message(user)
...
end
end
o si potrebbe creare un osservatore e lasciarlo guardare quando gli utenti diventa creati ...
Cosa dou si recommened?
Questo non è più il caso nei binari 3.1 gli osservatori possono annullare l'azione di un salvataggio restituendo false dal precedente_ * che annullerà l'azione e potrebbe anche generare un'eccezione in after_ * per annullare l'azione eccezionalmente. –
Grazie a jrizza, ho avuto un caso simile in cui un fallimento in uno degli osservatori ha fatto sì che il record non venisse salvato, il che credo sia un risultato indesiderato. –
Sì, è strano, non sono più osservatori, un'eccezione in un osservatore causerà il fallimento del commit e l'utente ottiene una schermata di eccezione. Non ha senso per me. – Amala