我有这个自定义作业,位于/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
我是通过MessagesController
带
Delayed::Job.enqueue(MessageNotificationJob.new(@user.id, @msg.id))
在application.rb
我有
config.autoload_paths += Dir["#{config.root}/lib/**/"]
但是我收到了错误
NameError - uninitialized constant MessagesController::MessageNotificationJob:
我该如何解决这个问题?我尝试了几种变体,将其作为最新的变体来解决类似的问题。我错过了什么?
答案 0 :(得分:0)
我没有使用过最新的DelayedJob,但看起来很糟糕,因为延迟的作业在运行时没有加载MessageNotificationJob类。请尝试以下方法:
# file: config/initializers/custom.rb
require 'message_notification_job'
另见this wiki entry - 我认为较新版本的DJ改进了错误信息(而不是默默地失败),但根本原因是相同的。