Rails 3 - Delayed_Job (colleideidea), пытающийся задержать почтовые программы - Ошибка: NoMethodError (неопределенный метод `delay 'для UserMailer: Class) - PullRequest
6 голосов
/ 11 декабря 2010

Я использую гем delayed_job здесь: https://github.com/collectiveidea/delayed_job

У меня есть следующее в наблюдателе:

UserMailer.delay.msg_notification(record) 

В user_mailer.rb

class UserMailer < ActionMailer::Base 
... 
def msg_notification(record) 
    mail( 
          :to => "#{record.user.email}", 
          :subject => "Notification" 
          ) 
  end 
.. 
end 

Но это ошибки с:

 NoMethodError (undefined method `delay' for UserMailer:Class): 

Есть идеи?спасибо

Ответы [ 2 ]

4 голосов
/ 26 января 2011

Я видел такую ​​проблему в нашем приложении Rails (2.3.8, но проблема звучит так же).По сути, есть три способа отложить действие:

  1. MyClass.delay.foo(arg)
  2. Ввод handle_asynchronously :foo в определение вашего класса после определения foo
  3. MyClass.send_later(:foo, arg)

По любой причине, # 3 была единственной формой, которая работала последовательно на всех наших машинах разработки.# 1 умер на нашем сервере разработки (Ubuntu);№ 2 на Mac нашего дизайнера.Но №3 был в порядке.

Надеюсь, это поможет!

2 голосов
/ 17 января 2011

Также проверьте, перезагрузили ли вы свой сервер после установки пакета.Это тоже может быть проблемой ...

...