【问题标题】:uninitialized constant while calling worker method in sidekiq在sidekiq中调用worker方法时未初始化的常量
【发布时间】:2012-10-02 06:18:25
【问题描述】:
我在 rails 3 中使用 sidekiq gem,并且我在 app/workers 文件夹中定义了一个 foo_workers.rb,当我尝试在名为 articles 的 rails 控制器中调用 FooWorker.perform_async(@article) 时出现此错误,
uninitialized constant ArticlesController::FooWorker
谁能帮帮我。
【问题讨论】:
标签:
ruby-on-rails
sidekiq
【解决方案1】:
检查您的复数形式。该文件名为foo_workers.rb,这意味着您可能正在定义FooWorkers,而不是FooWorker。应该是单数。但这都是猜测,因为您实际上并没有发布任何代码。
【解决方案2】:
自动加载机制不会复数您的类名。因此,FooWorker 类预计会在某些自动加载路径中的foo_worker.rb 文件中定义。
如果文件名不同(如foo_workers.rb),Rails 不会尝试从中加载类。