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])
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)
flash[:notice] = t("admin.newsletters.send_success")
else

View File

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