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 = ''
を設定してもちゃんと動かなかった。