我正在尝试创建一种方法,在调用时向所有用户发送电子邮件。
我的最终目标是通过调度程序调用此方法(我已经让调度程序正常工作)并且该方法将考虑所有用户,并在满足某些先决条件的情况下向其中一些用户发送电子邮件。
现在我只是想了解我如何制作一个最简单的东西,即向桌面上的每个用户发送自定义电子邮件。
我的第一个问题是:
def send_digest
@users = User.all
@users.each do |user|
@time = Time.now
mail(to: user.email, subject: user.name)
end
end
此方法(位于app / mailer / user_mailer.rb内)仅发送一封电子邮件给表中ID最大的人。为什么?
另外,我需要做些什么来访问电子邮件中的变量“user.name”?
编辑: 有一种更好的方法来访问邮件正文中的用户变量而不是@user = user?
def send_digest(user)
@time = Time.now
@user = user
mail(to: user.email, subject: 'mail message')
end
答案 0 :(得分:3)
对于每次调用邮件程序方法,都会发送一封电子邮件
在预定工作人员中
def calling_method
@users.each do |user|
send_digest(user.email, user.name)
end
end
用户邮件中的
def send_digest(user_email, user_name)
mail(to: user_email, subject: user_name)
end