Wer kennt das nicht: Neuer Post ist geschrieben worden, jeder Abonent bekommt eine Mail. Nun bei meinem Großprojekt FireStation sollten bestimmte Benutzer ebenfalls automatisch solche Mails bekommen, wenn Instanzen einer Modelklasse erstellt/geändert oder gelöscht wurden.

Anhand der Callbacks von Rails wurde dies nun mittels diesem Plugin gelöst.

Ein Model, dass später Mails senden kann, bekommt folgenden Zusatz:

model_notifier :modelClass => "ClassName", :controller => "Controller", :action => "show"

ModelClass wird gebraucht, damit wir den passenden Namen haben, über den wir später an der UI die Mails Bestimmten Rollen hinzufügen können.

Controller gibt den Controller an, der die Instanz dieser Objekte verwaltet. Falls dieser angegeben ist, so werden in den Mails passende Links auftauchen (Action ist defaultmäßig show).

Nach dem im Code des Models diese Methode hinzugefügt wurde, so können wir im laufendem Betrieb nun unter http://www.domain.de/modelclasses/ die Modelklassen sehen und unter http://www.domain.de/modelnotificationreceivers/ Zuordnungen von Modelklassen zu einer Benutzerrolle tätigen. Dabei können wir dann angeben für welche Aktionen noch eine Mail gesendet wird:

  1. on Create
  2. on Update
  3. on Delete

Was später intern gemacht wird, ist über die Callbacks nach Zuordnungen zu suchen und dort dann die Benutzer auszulesen, die diese Rolle inne haben.

Daher sollte die Rolle viele users haben, die ein eMail Attribut besitzen.

Falls dem der Fall ist, so wird die Email an diese Personen versand.

Subversion: http://svn.sjoker.net/svn/railsplugins/trunk/model_notifications/

convert this post to pdf.