2016-05-31 6 views
2

Rails 5.0.0.rc1とDelayedJob gemがインストールされました。私は以前の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コールを必要としません。それが遅延仕事のように私には見えます

関連する問題