Ruby on rails 循环工作,但邮件不工作

Ruby on rails 循环工作,但邮件不工作,ruby-on-rails,Ruby On Rails,我有一个方法,基本上是发送一个通知,有人在我的应用程序中提交了一个表单。我最近改变了我的模型,通过添加一个用户指定模型来处理所有作业(用户被分配到哪个学校等),可以通知多个人 方法: def new_message(applicant) @applicant = applicant @applicant.school.users.each do |user| mail(:to => user.email, :subject => "Submitte

我有一个方法,基本上是发送一个通知,有人在我的应用程序中提交了一个表单。我最近改变了我的模型,通过添加一个用户指定模型来处理所有作业(用户被分配到哪个学校等),可以通知多个人

方法:

  def new_message(applicant)
    @applicant = applicant
    @applicant.school.users.each do |user|
        mail(:to => user.email, :subject => "Submitted Application")
    end
  end
对象:

class Applicant
  belongs_to :school

class School 
  has_many :applicants
  has_many :user_designations
  has_many :users, :through => :user_designations

class User 
  has_many :schools, :through => :user_designations
  has_many :applicants, :through => :schools
mail函数仅在循环的最后一次迭代中起作用。我也得到了一个错误:

#学校的未定义方法“用户”:0x007fe064700890


在ActionMailer子类中,每个mailer操作在调用时构造邮件消息的内部表示,以便Rails传递。在您的循环中,您只是一次又一次地重构相同的邮件消息,因此只有循环的最后一次迭代幸存下来——这就是ActionMailer编写的方式

如果要向多个收件人发送邮件,您有以下几种选择:

  • 使用一个循环,在其中调用邮件程序(
    mailer.new_message(…).deliver
  • 在您的邮件中使用多个收件人/抄送/密件抄送地址

这是有道理的。如果我循环调用邮件发送者的位置,那么如何访问用户的电子邮件地址?如果我使用appenders.school.user.email,它会显示未定义的方法“user”。如果我使用applicators.school.users.email,它会显示未定义的方法“email”
applications.school.users.each do | user |。。。结束
。您可以作为
user
用户访问循环中的每个用户,谢谢我刚刚收到:)感谢您的帮助。