config gemを使って環境変数も読み込む

config gemには、ENVオブジェクトから値を読み込むためのuse_envオプションがあります。

しかし単にuse_envをtrueにしても、ちゃんと環境変数が読み込まれません(env_separatorがデフォルトだと.になっているため)

なので以下のようにenv_separator_を指定します。

Config.setup do |config|
  config.use_env = true
  config.env_prefix = 'SETTINGS'
  config.env_separator = '_'
end

こうすれば、Rails起動前に例えば、SETTINGS_MYKEY=my_value環境変数を設定すれば、 Settings.mykey”my_value"が取得できるようになります。

また、SETTINGS_MY_KEY=my_value環境変数を設定すると、Settings.my.keyのようにネストされて設定されます。

※ちなみにconfig.env_prefixを設定しないと、Settings_MYKEY=my_valueと設定しないといけなくなる…。あとenv_prefixをつけたくないなと思ってconfig.env_prefix = ''を設定してもちゃんと動かなかった。