【问题标题】:Rails Rake Task Email NotifierRails Rake 任务电子邮件通知程序
【发布时间】:2012-10-01 15:08:54
【问题描述】:

我是编写 Rails rake 任务的新手。我想编写一个 rake 任务来查找在到期后 30 分钟内的呼叫并执行邮件。下面是我将在控制器之外使用的代码,我怎样才能使它适应我的 rake 任务?

@call = Call.find(params[:id])
if Time.zone.now < @call.transfer_date + 30.minutes
   @call.units.each do |unit|
      CallMailer.cancel_call(unit.incharge, @call).deliver
      CallMailer.cancel_call(unit.attendant, @call).deliver
   end
end

感谢任何帮助。

【问题讨论】:

    标签: ruby-on-rails-3 rake actionmailer rake-task


    【解决方案1】:
    namespace :send_due_emails do
      desc "" #task describtion
      task :send_due_emails_task => :environment do
         send_emails
      end
    
      def send_emails
        @call = Call.find(params[:id])
        if Time.zone.now < @call.transfer_date + 30.minutes
          @call.units.each do |unit|
             CallMailer.cancel_call(unit.incharge, @call).deliver
             CallMailer.cancel_call(unit.attendant, @call).deliver
          end
        end
      end
    end
    

    http://railscasts.com/episodes/66-custom-rake-tasks

    http://jasonseifer.com/2010/04/06/rake-tutorial

    【讨论】:

    • 我跑了 rake send_due_emails:send_due_emails_task 并得到了这个: undefined local variable or method `params' for main:Object 我不应该使用实例变量吗?
    • 哦,是的。 params 在 rake 任务中不可用。
    猜你喜欢
    • 1970-01-01
    • 2015-08-12
    • 2022-08-15
    • 1970-01-01
    • 2013-01-08
    • 2010-09-21
    • 2012-06-25
    • 2015-03-04
    • 2011-11-01
    相关资源
    最近更新 更多