rails5でautoload問題を解決する
やられましたよ。
rails4 → rails5へのアップデートをしていたのですが、lib
pathの配下のものが読まれない。
config/application.rb
config.autoload_paths += %W(#{config.root}/lib)
問題ないだろ。
そう思っていましたよ。
どうやら、この作業が無効になっています。
2.6 production 環境での起動後は自動読み込みが無効になる 今後Railsがproduction 環境で起動されると、自動読み込みがデフォルトで無効になります。
アプリケーションの一括読み込み(eager loading)は起動プロセスに含まれています。このため、トップレベルの定数についてはファイルをrequireしなくても問題なく利用でき、従来と同様に自動読み込みされます。
トップレベルより下で、実行時にのみ有効にする定数(通常のメソッド本体など)を定義した場合も、起動時に一括読み込みされるので問題なく利用できます。
ほとんどのアプリケーションでは、この変更に関して特別な対応は不要です。めったにないと思われますが、productionモードで動作するアプリケーションで自動読み込みが必要な場合は、Rails.application.config.enable_dependency_loadingをtrueに設定してください。
ほとんどのアプリケーションでは、この変更に関して特別な対応は不要です。
いや、だいぶ影響あるだろ。
みんな使ってますよ!
ということで解決策
config.enable_dependency_loading = true
これはアップグレードガイドに書いていますね。
他にもやり方があります。
参考
危ない危ない・・・。