Ruby on rails 为什么迭代用户不';不在mailer方法中工作?
我有一个创建提醒的控制器操作,我正在传递Ruby on rails 为什么迭代用户不';不在mailer方法中工作?,ruby-on-rails,email,actionmailer,delayed-job,Ruby On Rails,Email,Actionmailer,Delayed Job,我有一个创建提醒的控制器操作,我正在传递@event和@users以检查用户是否选中了提醒复选框,默认情况下,我已将其设置为True 这是假设为我检查哪个用户想要得到一封电子邮件,并发送电子邮件给他们在邮递员,但它不工作的方式。它在不发送电子邮件的情况下清除队列 def create ReminderMailer.delay(queue: "#{@event.name}_letter", run_at: 1.minutes.from_now).events_reminder(@e
@event
和@users
以检查用户是否选中了提醒复选框,默认情况下,我已将其设置为True
这是假设为我检查哪个用户想要得到一封电子邮件,并发送电子邮件给他们在邮递员,但它不工作的方式。它在不发送电子邮件的情况下清除队列
def create
ReminderMailer.delay(queue: "#{@event.name}_letter", run_at: 1.minutes.from_now).events_reminder(@event,@users)
end
在我的邮件中,我有:
def events_reminder(event,users)
@event = event
@users = users
users.each do |user|
if user.eventReminder == true
mail to: user.email, subject: "Reminder"
end
end
end
它创建队列,但不发送电子邮件
我是否面临该用户所面临的问题
7天后:/!在文档中找到解决方案。。。他们说RTFM:)是真的 以下是解决方案: 2.3.3向多个收件人发送电子邮件 可以在一封电子邮件中向一个或多个收件人发送电子邮件 (例如,通知所有管理员新注册)通过设置 发送电子邮件至:to key。电子邮件列表可以是一组电子邮件 地址或地址之间用逗号分隔的单个字符串 类AdminMailer
从
事件\u提醒
向控制台输出用户
时会得到什么?另外,看起来您在控制器的创建方法中既没有设置@event
也没有设置@users
。@tirdadc我在创建方法中既设置了@event
也设置了@users
。当我查看延迟的工作日志时,users
会打印出列出的所有用户。
class AdminMailer < ActionMailer::Base
default to: Proc.new { Admin.pluck(:email) },
from: 'notification@example.com'
def new_registration(user)
@user = user
mail(subject: "New User Signup: #{@user.email}")
end
end