Railsアプリケーションで環境変数を管理する方法は色々あると思いますが、普段よく使うのがdotenvというgemです。
メモがわりにその方法を書いていきます。
まず使うgemをGemfileに記述します。
1 |
gem 'dotenv-rails' |
Gemfileに追加したらそれをインストールしましょう。
1 |
bundle install --path vendor/bundle |
これで準備は完了です。
あとはプロジェクト直下(appディレクトリやconfigディレクトリなどと同じ階層)に.envという名前のファイルを作成して、そこに環境変数を書いていきます。
例えばawsのシークレットキーを管理したい場合は以下のような感じです。
1 |
AWS_SECRET_KEY="hogehogehoge" |
これを他のファイルから使う際にどのように使うかですが、
1 |
ENV["AWS_SECRET_KEY"] |
というようなコードを書いてあげれば使えます。
気をつけるべきなのは、この.envファイルをgitignoreすることです。
なので.gitignoreファイルに以下の記述を加えます。
1 |
.env |
これでOKです。
staging環境や本番環境では、直接.envファイルを作成し、そこに環境変数を直接書き込んでいきます。
ただ、変数の数が多くなるとその管理が大変です。というのも.envファイルはgit管理されていないからです。
なので、変数の項目だけをgit管理してあげましょう。
そのためのファイルとして、.env.orgのようなファイルをプロジェクト直下に作成します。
その中身は、変数の名前だけを列挙したような形です。
1 2 3 |
AWS_SECRET_KEY="" AAA_BBB="" CCC="" |
そして、このファイルはgitignoreをする必要ありません。
本番環境などでは、このファイルをコピーして.envファイルを作成すると楽です。
以上Ruby on Railsにおける環境変数の管理についてでした。