3

Rails3でsidekiqgemを使用していて、app / workersフォルダーにfoo_workers.rbを定義しました。このエラーが発生FooWorker.perform_async(@article)するという名前のRailsコントローラーを呼び出そうとすると、articles

uninitialized constant ArticlesController::FooWorker

誰か助けてくれませんか。

4

2 に答える 2

6

複数形を確認してください。ファイルの名前はです。これは、おそらくではなく をfoo_workers.rb定義していることを意味します。単数である必要があります。しかし、実際にはコードを投稿していないため、これはすべて推測です。FooWorkersFooWorker

于 2012-10-01T09:16:55.560 に答える
2

autoload メカニズムは、クラス名を複数形にしません。そのため、クラスはオートロード パスの一部にFooWorkerあるファイルで定義されることが期待されます。foo_worker.rb

ファイル名が異なる場合 ( のようにfoo_workers.rb)、Rails はそこからクラスを読み込もうとしません。

于 2012-10-01T12:08:40.337 に答える