2013-02-17 13 views
0

我有位於/lib/jobs/MessageNotificationJob.rb的delayed_job - NameError - uninitilized不斷

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 

這個自定義的工作,我有

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

在我application.rb調用它從MessagesController的方法我有

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

但我得到錯誤

NameError - uninitialized constant MessagesController::MessageNotificationJob: 

我該如何解決這個問題?我已經嘗試了幾個變體,將其作爲解決類似問題的最新解決方案。我錯過了什麼?

回答

0

我還沒有使用最新的DelayedJob,但它看起來像一個可怕的延遲作業沒有運行時加載MessageNotificationJob類。請嘗試以下操作:

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

this wiki entry見 - 我認爲DJ的新版本改進了錯誤信息(而不是默默不及格),但根本原因是一樣的。

+0

正如我想到的,我很確定這是問題所在。符號引用來自YAML.load()或等價物,因此只需將MessageNotificationJob添加到自動加載列表中即可。 – 2013-02-19 06:37:01

相關問題