UPDATE:有許多人針對此問題的補丁:https://github.com/collectiveidea/delayed_job/commit/023444424166ba2ce011bfe2d47954e79edf6798NoMethodError用的delayed_job(collectiveidea寶石)
更新2:對於任何運行到在Heroku這個問題而言,我發現降級到耙0.8。 7和使用延遲作業版本2.1.4工作,而延遲作業V3沒有(雖然與補丁它在本地工作)。這是在Bamboo-mri-1.9.2堆棧上。
我想在本地的rails 3.1.0應用程序上實現delayed_job。我跑的遷移和 安裝寶石文件:
gem 'delayed_job'
gem 'delayed_job_active_record'
繼上collectiveidea github上(https://github.com/collectiveidea/delayed_job)的文檔。我從我的控制器使得延遲電話如下:
EventMailer.delay.event_message_email(current_user, @event_message)
這將導致任務被添加到工作表,但是當我運行耙作業:工作,它記錄以下錯誤:
Class#event_message_email failed with NoMethodError: undefined method `event_message_email' for Class:Class - 6 failed attempts
我已經看過其他的delayed_job NoMethod錯誤問題,但沒有解決這個特定的錯誤或提供解決方案。 collectiveidea頁面提到這種沒有傳遞方法調用的格式對於如何設置Rails 3郵件程序是一種破解,所以我想知道這個文檔是否可能有些過時,並且如果有一種新的方法稱爲郵件程序方法?
更新:也毫無延遲地調用郵件方法工作正常,我在默認的rails服務器上運行它,所以在collectiveidea faq中提到的Thin問題不適用。謝謝
您最後一次重新啓動「rake jobs:work」任務是什麼時候?它需要在每次代碼更改後重新啓動。 – iwasrobbed 2011-12-22 16:56:38
EventMailer.event_message_email(current_user,@event_message).delay.deliver是否有效? – Unixmonkey 2011-12-25 20:56:35
@iWasRobbed:是的,我已經試過了 – tks 2011-12-27 02:14:24