TID-owrsuwi8g WARN:NameError:Sidekiq of Rails中未初始化的常量NewsWorker

时间:2017-06-07 09:33:16

标签: ruby-on-rails ruby sidekiq

我正在开发使用Rails发送电子邮件的Sidekiq gem应用程序。

创建工作人员,然后将其称为:

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)

但无论如何它不起作用并显示error message之类:

TID-owrsuwi8g WARN: NameError: uninitialized constant NewsWorker

我也尝试从模型和控制器调用,但仍然显示相同的错误。 My old worked running fine但是为什么这个新的创造不起作用..我找到了许多方法,但仍然没有解决。

更新

# /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

让我知道是否有人有想法。

由于

1 个答案:

答案 0 :(得分:0)

我认为它与autoload_paths有关; <{1}}目录未自动加载。

workers中添加以下行:

config/application.rb

这应该可以解决问题