Changed how newsletters controller and mailer handle recipients

Now newsletters controller calls the Mailer method to send a newsletter once per user.
This commit is contained in:
María Checa
2018-02-27 13:12:34 +01:00
parent 494904565a
commit 8d2a103744
2 changed files with 7 additions and 6 deletions

View File

@@ -48,7 +48,10 @@ class Admin::NewslettersController < Admin::BaseController
@newsletter = Newsletter.find(params[:id]) @newsletter = Newsletter.find(params[:id])
if @newsletter.valid? if @newsletter.valid?
Mailer.newsletter(@newsletter).deliver_later @newsletter.list_of_recipients.each do |recipient|
Mailer.newsletter(@newsletter, recipient).deliver_later
end
@newsletter.update(sent_at: Time.current) @newsletter.update(sent_at: Time.current)
flash[:notice] = t("admin.newsletters.send_success") flash[:notice] = t("admin.newsletters.send_success")
else else

View File

@@ -126,13 +126,11 @@ class Mailer < ApplicationMailer
end end
end end
def newsletter(newsletter) def newsletter(newsletter, recipient)
@newsletter = newsletter @newsletter = newsletter
@email_to = newsletter.list_of_recipients @email_to = recipient.email
@email_to.map(&:email).uniq.each do |recipient| mail(to: @email_to, from: @newsletter.from, subject: @newsletter.subject)
mail(to: recipient, from: @newsletter.from, subject: @newsletter.subject)
end
end end
private private