Ruby on rails Rails 5.2和Sidekiq:Can';我找不到工人阶级

Ruby on rails Rails 5.2和Sidekiq:Can';我找不到工人阶级,ruby-on-rails,redis,sidekiq,Ruby On Rails,Redis,Sidekiq,我有一个名为release\u monitor\u worker.rb的工作人员保存在app/workers/下。看起来是这样的: class ReleaseMonitorAddWorker include Sidekiq::Worker sidekiq_options retry: false require 'watir' require 'nokogiri' require 'open-uri' def parse_url(url) puts "Begi

我有一个名为
release\u monitor\u worker.rb的工作人员保存在
app/workers/
下。看起来是这样的:

class ReleaseMonitorAddWorker
  include Sidekiq::Worker
  sidekiq_options retry: false

  require 'watir'
  require 'nokogiri'
  require 'open-uri'

  def parse_url(url)
    puts "Beginning navigation to #{url}"
    browser = Watir::Browser.new :chrome, headless: true
    browser.goto url
    puts "Succesfully navigated!"
    Nokogiri::HTML.parse(browser.html)
  end

  def perform
    doc = parse_url(URL)
    count = doc.xpath('/html/body/div[9]/div/div/div/div/div[2]/div[2]/div[1]/div/div[1]/h1/span')
    count.tr('()', '')
    binding.pry
  end
end
然后,我从我的NewReleasesController(名为new_releases_controller.rb)调用这个worker,如下所示:

classnewreleasescontroller
我启动redis,然后sidekiq,然后运行rails s。触发该控制器方法时,我遇到以下错误:
uninitialized constant NewReleasesController::ReleaseMonitorAddWorker


这是怎么回事?

类名(
ReleaseMonitorAddWorker
)和包含文件名(
release\u monitor\u worker.rb
)之间不匹配。将您的文件重命名为
release\u monitor\u add\u worker.rb
,或者将您的类重命名为
ReleaseMonitorWorker
,它就会工作

类名(
ReleaseMonitorAddWorker
)和包含文件名(
release\u monitor\u worker.rb
)之间不匹配。将您的文件重命名为
release\u monitor\u add\u worker.rb
,或者将您的类重命名为
ReleaseMonitorWorker
,它就会工作

class NewReleasesController < ApplicationController
  def index
    ReleaseMonitorAddWorker.perform_async
  end
end