Ich dachte über Beobachter oder Rückrufe. Was und wann sollten Sie einen Beobachter verwenden?Beobachter und Rückrufe
F.e. Folgende Sie tun können:
# 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
oder Sie können einen Beobachter erstellen und lassen Sie es sehen, wenn Benutzer erstellt wird ...
Was Dou Sie recommened?
Dies ist nicht mehr der Fall in Schienen 3.1 Beobachter können die Aktion einer Speicherung durch die Rückgabe von false aus der before_ * stornieren, die die Aktion abbrechen und eine Ausnahme in after_ * auslösen kann, um die Aktion ausnahmsweise zu stornieren. –
Dank Jrizza, hatte ich einen ähnlichen Fall, in dem ein Fehler in einem der Beobachter die Aufzeichnung nicht zu speichern verursacht, was ich denke, ist ein unerwünschtes Ergebnis. –
Ja, es ist merkwürdig, sie sind keine Beobachter mehr, eine Ausnahme in einem Beobachter wird dazu führen, dass die Festschreibung fehlschlägt und der Benutzer einen Ausnahmebildschirm erhält. Für mich ergibt das keinen Sinn. – Amala