2017-10-26 2 views
0

Ich versuche, eine Methode in meinem Mailer einzurichten, um die E-Mail nach zwei Wochen zuzustellen. Ich habe Probleme, die erstellte E-Mail aus der Datenbank zu ziehen und in "mail (to: ...)" zu schreiben ... Ich kann E-Mails senden, wenn ich sie von der Konsole aus anfordere.Ruby ActionMailer. Senden an neue E-Mail

Das Ziel ist also, jedes Mal, wenn ein neuer Standort hinzugefügt wird, wird nach 14 Tagen eine E-Mail an die angegebene E-Mail-Adresse gesendet. Hier ist meine App/Mailer.

class NotificationMailer < ApplicationMailer 
    default from: "[email protected]" 

    def reminder(email) 
     @email = email 

     mail(to: @place.email, 
      subject: "Reminder: your box is going to be picked up in fourteen days") 
    end 
end 

MY MODEL

class Place < ApplicationRecord 
    belongs_to :user 
    after_create :send_alert_email 

    geocoded_by :address 
    after_validation :geocode 

    validates :name, presence: true 
    validates :name, length: {minimum: 3, 
    too_short: " %{count} or more characters are required."} 
    validates :address, presence: true 
    validates :phone, length: { is: 10} 

    def send_alert_email 
     NotificationMailer.reminder(self).deliver(wait: 1.hour) 
    end 

end 

Danke Jungs für die Hilfe.

+0

verwenden, können Sie die Wartezeit auf 'NotificationMailer' der Einstellung 14 Tage versucht haben? –

+0

Hey! Ich wollte nur stundenlang rechnen. Ich denke, dass ich mein Problem herausgefunden habe, als ich die E-Mail aus der Datenbank herausholte, nachdem ein neuer Ort eingereicht wurde. –

Antwort

1

Sollte es nicht sein?

def reminder(place) 
    @place = place 

    mail(to: @place.email, 
     subject: "Reminder: your box is going to be picked up in fourteen days") 
end 

Und nicht brauchen Mathematik zu tun, Sie wait: 14.days