Ruby on rails TID-owrsuwi8g警告:名称错误:Rails的Sidekiq中未初始化的常量NewsWorker

Ruby on rails TID-owrsuwi8g警告:名称错误:Rails的Sidekiq中未初始化的常量NewsWorker,ruby-on-rails,ruby,sidekiq,Ruby On Rails,Ruby,Sidekiq,我正在开发Rails应用程序,其中使用Sidekiq gem发送电子邮件 创建worker,然后将其命名为: Worker File: news_worker.rb NewsWorker.perform_at(5.minutes.from_now, @news.title, @news.link, @news.image, user_detail.email, user_detail.category_name, type, email_template) 但无论如何,它不工作,并显示错误消

我正在开发Rails应用程序,其中使用Sidekiq gem发送电子邮件

创建worker,然后将其命名为:

Worker File: news_worker.rb

NewsWorker.perform_at(5.minutes.from_now, @news.title, @news.link, @news.image, user_detail.email, user_detail.category_name, type, email_template)
但无论如何,它不工作,并显示错误消息,如:

我试图从模型和控制器调用,但仍然显示相同的错误。我的旧产品运行良好,但为什么新产品不起作用。。我找到了很多方法,但仍然没有找到

使现代化 如果有人知道,请告诉我


谢谢

我认为这与自动加载路径有关;workers目录不是自动加载的

在config/application.rb中添加以下行:

config.autoload_paths += %W(#{config.root}/app/workers)

这应该可以做到

你能提供新闻工作者文件的完整路径,以及主要类定义中的代码吗?听起来Sidekiq没有加载Rails环境,您是否从Rails根目录中运行sidekiq?@AhmedSamirShahin app/workers/news_worker.rb也使用完整代码更新问题。您是否重新启动sidekiq?@MikePerham其自动启动一次推送代码。Rails自动加载app/中的所有内容,具体取决于Rails版本:?
# /app/workers/news_worker.rb

class NewsWorker
  include Sidekiq::Worker
  include Rails.application.routes.url_helpers

  def perform  news_title, news_link, news_image, email, category_name, type, email_template = nil
    send_to_email(news_title, news_link, news_image, email, category_name, type, email_template)
  end

  def send_to_email news_title, news_link, news_image, email, category_name, type, email_template
    SchoolMailer.send_news(news_title, news_link, news_image, email, category_name, type, email_template).deliver
  end
end
config.autoload_paths += %W(#{config.root}/app/workers)