パスワードやAPI Keyなど、gitにcommitしたくない情報の扱い方に関するパターンのメモです。今回はHerokuでアプリを動かす場合を想定しています。

まとめ

figaroを使い、設定ファイルはgitignoreする。

ローカルでの開発中

figaroというgemを導入します。その上でconfig/application.ymlに秘密にしたい情報を記載し、gitに追加されないよう、このファイルを.gitignoreに追加します。
設定するときのapplication.ymlの書き方はこのようになります。
consumer_key: "password"
Rubyから参照するときはENVから値を取り出します。
ENV["consumer_key"]

Heroku環境での設定

application.ymlの内容をherokuの環境変数に反映するには、以下のコマンドを使用します。
figaro heroku:set -e production
環境変数の一覧はこのコマンドで確認できます。
heroku config
ちなみに、環境変数を1つずつ設定する場合はこのコマンドです。
設定
heroku config:add KEY=VALUE
削除
heroku config:remove KEY

これ選択の設定管理方法

dotenvを使う
rails以外でも使用可能です。

config/secrets.ymlを使う
rails4.1以降で使用する事ができる、railsの機能です。
ただし、Herokuではconfig/secrets.ymlが必須になっており、secrets.ymlをgitignoreする方法が使えません。
Herokuに限定した場合はfigaroが簡単そうです。Heroku以外のプラットフォームも考えた場合はsecrets.ymlがサポートされている可能性もあるので、プラットフォームごとに検討が必要です。

参考

Getting Started with Rails 4.x on Heroku | Heroku Dev Center
Rails4.1のsecrets.ymlはfigaroと違うの? - PILOG