2016-05-31 36 views
2

我已經安裝Rails 5.0.0.rc1以及DelayedJob寶石。我有一些代碼在以前的Rails應用程序(Rails4.2)中工作得非常好,但由於某種原因,它現在仍然在heroku上的生產失敗。Rails 5與DelayedJob導致錯誤

總之,我試圖用DelayedJob的'handle_asynchronously'方法發送電子郵件。我創建了郵件程序並在我的模型中添加了回調,但是當我在Heroku上提交表單時,出現Rails錯誤屏幕。在我的日誌中,我看到一個錯誤,指出'ArgumentError:錯誤的參數數量(給定1,預期爲0)'。如果我刪除'handle_asynchronously'方法,那麼我的回調工作。我顯然希望使用DelayedJob發送郵件等。

我的代碼如下所示:

FooModel.rb 

.... 
after_create :send_welcome_mail 
def send_welcome_mail 
    FooMailer.welcome_email(self).deliver 
end 
handle_asynchronously :send_welcome_mail 

正如我所說,這個代碼Rails4完美無缺。有人能幫助我嗎?我需要在Rails5中做一些不同的事情嗎?

+0

您可以發佈完整的錯誤跟蹤?至少有幾條頂線。 – BoraMa

+0

你對模型有什麼特性?這也可能發生在名稱衝突。 – Max

回答

4

我認爲使用ActiveJob作爲排隊後端的抽象可能是個好主意。例如:

def send_welcome_mail 
    FooMailer.welcome_email(self).deliver_later 
end 

然後你就不需要撥打handle_asynchronously