Wenn E-Mails in Rails zu senden, in der Regel würde man so etwas tun:Wie können Sie Klassenmethoden für Mailer aufrufen, wenn sie nicht als solche definiert sind?
UserMailer.password_reset(user).deliver
Aber wenn wir in UserMailer
aussehen können wir sehen:
def password_reset(user) # not self.password_reset
# ...
end
Beachten Sie, dass der Methodenname mit nicht voran self
. Wenn Sie es betrachten, scheint es, als ob Sie das Objekt zuerst wie unten beschrieben instanziieren müssen. Wie macht Rails das?
UserMailer.new.password_reset(user).deliver
Vielen Dank. Aber warum nicht einfach eine Klassenmethode? Was gewinnen wir von diesem Ansatz? – dee
Ich bin mir nicht sicher, ob ich alles verstehe. Meinst du, warum es nicht zu einer Instanzmethode machen? Also, wie UserMailer.new.password_reset (user) .deliver? – Rebitzele
Ich meine, warum verwenden Methode fehlt? Behalte es 'UserMailer.password_reset (user) .deliver', aber ändere' def method' in 'def self.method' – dee