Ich muss massive E-Mail senden, werde ich für brackground Job verzögerter Job verwenden, und muss die E-Mail-Nachricht in 3 Sprachen erstellen (de, en, re), Wie kann ich Zwischenspeichern Sie die Ansicht, damit sie nicht jedes Mal erstellt werden muss, wenn ich die Mail-Methode aufruft.Wie man eine Maileransicht beim Senden von massiven E-Mails zwischenspeichern
0
A
Antwort
1
Verfahren liefern ist derjenige, der die E-Mail sendet, so können Sie dies tun:
def send_emails
# You can set here the email with attachments and all stuff
mail = MyMailer.send_message("[email protected]")
body = mail.html_part.body
User.all.each do |u|
mail.to = u.email
mail.html_part.body = body.gsub(/user_id/, u.id)
mail.deliver
end
end
Natürlich ist es besser, wenn Sie diese Methode für die Hintergrundverarbeitung gesetzt.
wenn es massiv ist, dann vielleicht besser 'find_each' und nicht' all' verwenden? –