Уведомление по электронной почте о задачах Rails Rake

Я новичок в написании рейк-задач на Rails. Я хочу написать задачу 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

Любая помощь приветствуется.


person nulltek    schedule 01.10.2012    source источник


Ответы (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

person Hitham S. AlQadheeb    schedule 01.10.2012
comment
Я запустил rake send_due_emails:send_due_emails_task и получил ответ: неопределенная локальная переменная или метод `params' для main:Object не должен ли я использовать переменные экземпляра? - person nulltek; 01.10.2012
comment
О, да. params недоступен в задаче rake. - person Hitham S. AlQadheeb; 01.10.2012