我有一种方法,基本上会发出有人在我的应用中提交表单的通知。我最近更改了我的模型,以便通过添加user_designations模型来处理所有分配(用户被分配到哪所学校等)来通知多个人。
方法:
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
邮件功能仅适用于循环的最后一次迭代。我也遇到了错误:
#School的未定义方法`user':0x007fe064700890
基于这些少量信息的任何想法?
答案 0 :(得分:1)
在ActionMailer子类中,每个邮件程序操作在调用时构造邮件消息的内部表示,以供Rails传递。在你的循环中,你只是一遍又一遍地重建同一个邮件消息,所以只有循环的最后一次迭代才能存活 - 这就像ActionMailer的编写方式一样。
如果您想向多个收件人投放,您可以选择以下几种方式:
Mailer.new_message(...).deliver
)