この問題に関するdotenvの作者の回答は
Doubtful. It's a bit of a chicken-egg problem.
鳥と卵の問題になるので怪しい。とのことです。
解説すると、dotenvはbundlerによって読み込まれます。
bundlerは環境によって読み込むgemを切り替えます。
ということは、bundlerからgemが読み込まれた時点で環境が決まっている必要があります。
なので、「dotenvからRAILS_ENVを上書きした場合、なんの問題もなく環境を切り替えられるかは怪しい」という事になります。
追記:
解決策っぽいものを見つけました。
以下をGemfileのrails直下あたりにgroup指定せずに記述するとよいでしょう。
dotenvの制限によりダメでした。
ruby
1gem 'dotenv-rails', require: 'dotenv/rails-now'
再追記
- group指定せずに
gem dotenv-rails
を記述する。
.env
にRAILS_ENV=production
を記入
- config/boot.rbを編集
rb
1ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../Gemfile', __dir__)
2
3require 'bundler/setup' # Set up gems listed in the Gemfile.
4
5# 追加
6require 'dotenv'
7Dotenv.load
8
9require 'bootsnap/setup' # Speed up boot time by caching expensive operations.
というか、config/boot.rb
冒頭にでもENV["RAILS_ENV"]="production"
を書くだけでいい気もしてます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/05/20 02:46
退会済みユーザー
2019/05/20 03:05 編集
2019/05/20 05:29
2019/05/20 05:34
退会済みユーザー
2019/05/20 05:59 編集
2019/05/20 06:09