TL;DR
http://blog.arkency.com/2014/11/dont-forget-about-eager-load-when-extending-autoload/
これ読んでください。
概要
config/application.rb
config.autoload_paths += %W( #{Rails.root}/lib )
こんな感じのコードありますよね。
これだと、たしかにautoload
はされるんですが、eager_load
はされないのです。なので、eager_load
が有効になっている本番環境などで、状況によってはNameError
が起きてしまう。
代わりに、
config/application.rb
config.paths.add "#{Rails.root}/lib", eager_load: true
と書くとeager_loadもされるので、本番環境でもエラーが起きず安心、というわけです。
余談
autoload
とeager_load
でアンスコあるなしを統一してほしい…