【发布时间】:2019-12-22 09:07:02
【问题描述】:
昨晚我发现我的 rake mailer 任务发送我的时事通讯,只将它发送给最后一个订阅者。但为什么?!我使用 Heroku Scheduler 来执行任务。
这是我在scheduler.rake中的代码:
desc "This task is called by the Heroku scheduler add-on"
task :send_newsletter => :environment do
if Time.now.saturday?
NewsletterMailer.weekly_best.deliver
end
end
这就是我在NewsletterMailer 中定义weekly_best 的方式:
def weekly_best
@subscriptions = NewsletterSubscription.where(active: true)
@plugins = Plugin.where("created_at >= ?", Date.today.beginning_of_week).where("cached_votes_up > ?", 0).order(:cached_votes_up => :desc).first(5)
@subscriptions.each do |s|
mail(to: s.email, from: "Great Wavelengths <hi@greatwavelengths.com>", subject: "Weekly best gear")
end
end
如您所见,我确实遍历了订阅的所有电子邮件地址,但为什么不将其发送给所有人?
希望大家帮忙:)
【问题讨论】:
标签: ruby-on-rails heroku rake mailer