3

我在 rails 3 中使用 sidekiq gem,并且我在 app/workers 文件夹中定义了一个 foo_workers.rb,当我尝试调用FooWorker.perform_async(@article)一个名为 rails 的控制器时articles,我得到了这个错误,

uninitialized constant ArticlesController::FooWorker

谁能帮帮我吗。

4

2 回答 2

6

检查你的复数形式。该文件被称为foo_workers.rb,这意味着您可能正在定义FooWorkers,而不是FooWorker. 应该是单数。但这都是猜测,因为您实际上并没有发布任何代码。

于 2012-10-01T09:16:55.560 回答
2

自动加载机制不会复数你的类名。FooWorker因此,预计该类将foo_worker.rb在某些自动加载路径的文件中定义。

如果文件名不同(如foo_workers.rb),Rails 不会尝试从中加载类。

于 2012-10-01T12:08:40.337 回答