0

私はこのカスタムジョブを持っています/lib/jobs/MessageNotificationJob.rb

class MessageNotificationJob < Struct.new(:user_id, :message_id)  

  def perform

        @user = User.find(user_id)
        @message = Message.find(message_id)
    if !message.reciever_open
        MessagesMailer.message_notification(@user, @message ).deliver

    end

  end
end

MessagesControllerwith内のメソッドから呼び出す

Delayed::Job.enqueue(MessageNotificationJob.new(@user.id, @msg.id))

私のapplication.rb中で私は持っています

config.autoload_paths += Dir["#{config.root}/lib/**/"]      

しかし、私はエラーが発生します

 NameError - uninitialized constant MessagesController::MessageNotificationJob:

これを修正するにはどうすればよいですか? 私はいくつかのバリエーションを試しましたが、これは同様の質問に対する解決策としての最新のものです。何か不足していますか?

4

1 に答える 1

0

私は最新の DelayedJob を使用していませんが、遅延ジョブの実行時に MessageNotificationJob クラスがロードされていないように見えます。次のことを試してください。

# file: config/initializers/custom.rb
require 'message_notification_job'

この wiki エントリも参照してください-- 新しいバージョンの DJ ではエラー メッセージが改善されたと思いますが (黙って失敗するのではなく)、根本的な原因は同じです。

于 2013-02-19T06:33:18.140 に答える