Rails Mailer: отправка писем получателям на основе соответствующих критериев - PullRequest
0 голосов
/ 18 декабря 2018

Мне удалось настроить мой ActionMailer на отправку электронных писем получателям на основе новой «отправки».Однако мое приложение работает так, что оно берет поле «Требуемое местоположение» и сопоставляет его с полем «Расположение компании» в другой модели с именем «Агенты», чтобы получить представление индекса, которое соответствует местоположению в зависимости от пользователя.то есть, если я отправляю представление с указанием местоположения в Лондоне, то только агенты с указанием местоположения в Лондоне смогут увидеть его.Что приводит меня к моим электронным письмам, есть ли способ создать почтовую программу, которая работает таким же образом?Поэтому отправлять только электронные письма агентам, которые соответствуют желаемому месту отправки?

Mailer

class NewSubmissionMailer < ApplicationMailer

  def submission_email(submission)
    @submission = submission
    mail(to: @submission.Email, subject: 'Welcome to Ottom8')
  end

end

Контроллер представлений

respond_to do |format|
  if @submission.save

    # Tell the UserMailer to send a welcome email after save       
    NewSubmissionMailer.submission_email(@submission).deliver_now

Код для соответствия обеим моделям

def index
  @submissions = Submission.where(:Desired_Location => current_agent.Company_Business_Location)
end

Спасибо

1 Ответ

0 голосов
/ 18 декабря 2018
respond_to do |format|
  if @submission.save
    # Tell the UserMailer to send a welcome email after save
    NewSubmissionMailer.submission_email(@submission).deliver_now

    # Send emails to matching agents
    NewSubmissionMailer.matching_agents_email(@submission).deliver_now

а потом в почтовике ::matching_agents_email:

def matching_agents_email(submission) 
  @submission = submission
  agents = Agent.where(:Company_Business_Location => @submission.Desired_Location)
  mail(to: agents.pluck(:email) # ... Rest of email logic. )
...