瑞克任务上的ActionMailer循环每次运行都会发送额外的邮件

时间:2018-11-03 15:09:59

标签: ruby-on-rails rake actionmailer

我无法弄清楚, 我有这堂课

class UserMailer < ActionMailer::Base
 def apps_remainder_email()
    #apps array ..which basically have 3 records in it
    apps.each do |rec||
    mail(to:  user.email, subject: 'Apps Remainder').deliver
    end
 end
end

当我尝试在Rails控制台UserMailer.apps_remainder_email中调用上面的命令时,它工作正常并且发送了三封电子邮件,但是当我将其添加为rake任务时,它发送的是四封而不是三封,即总是final的重复电子邮件。

这是我的耙任务

task daily: [:environment] do  
 UserMailer.apps_remainder_email.deliver
end

我认为这是因为我的任务中有一个.deliver,但是没有该.deliver,则根本没有邮件在发送。

  $ rake daily --trace
    ** Invoke daily (first_time)
    ** Invoke environment (first_time)
    ** Execute environment
    ** Execute daily

1 个答案:

答案 0 :(得分:1)

您的foreign keys类不应自行调用UserMailer

您的瑞克任务应该调用deliver

因此从deliver类中删除deliver并将逻辑放入您的rake任务中:

UserMailer