我正在开发使用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
让我知道是否有人有想法。
由于
答案 0 :(得分:0)
我认为它与autoload_paths
有关; <{1}}目录未自动加载。
在workers
中添加以下行:
config/application.rb
这应该可以解决问题