rails consoleで「config.eager_load is set to nil.」と言うエラーが出る場合の対処法

deployしたサーバでmodelのメソッドを実行したくてrails consoleに入ろうとしたところ、以下のエラーが出た。

[deploy@example.com current]$ ./bin/rails c RAILS_ENV=production
config.eager_load is set to nil. Please update your config/environments/*.rb files accordingly:

  * development - set it to false
  * test - set it to false (unless you use a tool that preloads your test environment)
  * production - set it to true

環境変数はコマンドの前に書く

原因は

[deploy@example.com current]$ ./bin/rails c RAILS_ENV=production

この順番だった。

正解は

[deploy@example.com current]$ RAILS_ENV=production ./bin/rails c

こう。

まとめ

cronでrake taskを設定した時は、rakeコマンドの後にRAILS_ENVとかを書いて動いていたので、てっきりそれで良いのかと思ったけど、Linux的には先にENVを設定してからコマンドを叩かないと、ENVが設定される前にコマンドが実行されちゃうから当り前と言えば当り前か…。

コメント

タイトルとURLをコピーしました