Reputation: 5745
Is any of this code depreciated in Zeitwerk Mode in Rails 6?
class Application < Rails::Application
# Initialize configuration defaults for originally generated Rails version.
config.load_defaults 5.2
# config/application.rb
config.i18n.load_path += Dir[Rails.root.join("config", "locales", "**", "*.{rb,yml}")]
config.i18n.fallbacks = true
# Settings in config/environments/* take precedence over those specified here.
# Application configuration can go into files in config/initializers
# -- all .rb files in that directory are automatically loaded after loading
# the framework and any gems in your application.
config.autoload_paths += ["#{config.root}/app/queries/"]
# https://gist.github.com/maxim/6503591 (should remove this and fix)
config.eager_load_paths << Rails.root.join("lib")
I read that autoloading is being removed, and so far it has not caused an issue but wanted to remove deprecated code. If it is depreciated, how do I load my code?
Upvotes: 6
Views: 5115
Reputation: 653
Nothing you have here is deprecated, however one thing worth mentioning is from the documentation:
The array of autoload paths can be extended by mutating config.autoload_paths, in config/application.rb, but nowadays this is discouraged.
Rails 5+ is discouraging the use of manually extending config.autoload_paths because of potential issues it can cause in your production environment. The discussion dates back to 2013 and you can read about it here.
From Rails 5+ all directories under app/ are autoloaded by default. If you'd like to follow the Rails recommendation, you should remove this line
config.autoload_paths += ["#{config.root}/app/queries/"]
and move your queries directory under "#{Rails.root}/app" folder.
Upvotes: 12