uninitialized constant sidekiq worker
ruby-on-rails, ruby-on-rails-5, sidekiq
Solution
By default, Rails will include all subdirectories of the `app` folder in the autoload paths list. You can review the list of autoload paths in the console with:
puts ActiveSupport::Dependencies.autoload_paths
But Rails only looks for these paths at boot time. So when you add a new folder, like `app/workers`, it is not enough to restart the Rails console. You need to both exit the Rails console and stop the Spring Application Preloader with:
spring stop
Then start up the Rails console again and the files in the `app/workers` folder will load properly.
Problem
New rails project. Rails 5.0.2 Sidekiq 4.2.10 I ran `rails g sidekiq:worker deposit_collector` and then filled out the code I needed inside the `perform` method. To test I logged into the rails console and typed: `DepositCollector.perform_async` and I get the error: ``` NameError: uninitialized constant DepositCollectorWorker ``` The worker is where it should be in the `app/workers/` folder. I've used sidekiq on several projects before and have never run into this.