TwitterのAPIキーなど、公開したくない情報をどこに設定すればいいか調べたところ、
config/secrets.yml
に設定して、.gitignore
して使うようなので、設定してみました。
# config/secrets.yml
development:
twitter_api_key: hogefuga.....
# 呼び出し側
key = Rails.application.secrets.twitter_api_key
しかしherokuを利用する場合、この`secrets.yml`というファイル自体必須なので、`.gitignore`するわけにはいきません。 * [How to solve error "Missing secret_key_base for production environment" on Heroku](http://stackoverflow.com/questions/23180650/how-to-solve-error-missing-secret-key-base-for-production-environment-on-h) ## dotenv-railsの設定 そこで検討した結果、`dotenv-rails`というGemを使うことにしました。 このGemを使うと、アプリケーションごとに環境変数(非公開情報)が設定できるようになり、 `secrets.yml`に公開したくない情報を設定しなくても良くなります。
# Gemfile
gem 'dotenv-rails'
まず、アプリケーションのディレクトリの直下に.env
というファイルを作成し、環境変数を設定します。
# .env
TWITTER_API_KEY="hogehoge"
TWITTER_API_SECRET="fugafuga"
読み出す時は、以下のように指定します。
puts ENV[‘TWITTER_API_KEY’] # => “hogehoge”
最後に.env
ファイルを.gitignore
します。
以上で完了です。
herokuに環境変数を設定する
ちなみに、herokuに環境変数を設定するには以下のように指定します。
$ heroku config:add TWITTER_API_KEY=“hogehoge” –app アプリ名
$ heroku config:add TWITTER_API_SECRET=“fugafuga” –app アプリ名