昨晚,我发现了我的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
这就是我在weekly_best
中定义NewsletterMailer
的方式:
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
如您所见,我会遍历订阅的所有电子邮件地址,但是为什么不将其发送给所有人?
希望你们可以提供帮助:)