Rails 4.1以降はランダム文字列を config/secrets.yml に集めて管理するようになったとのこと。
2017/2/6追記:devise独自に設定しなければ、Railsのsecret_base_keyをつかうとのこと。
なので以下の devise_secret_keyを設定する必要はない。
config/secrets.yml のキーの読み込み方(deviseを例として)
ユーザ認証のライブラリー devise は3.1以降から秘密鍵を求めている。Rails 4.1 pushing secrets to herokuを参考にdeviseの秘密鍵をconfig/secrets.ymlに格納する。
config/initializers/devise.rb には以下のように記述する。
# Rails 4.0前 #config.secret_key = 'rake secretで生成した文字列' # # Rails 4.1以降 config.secret_key = Rails.application.secrets.devise_secret_key
config/secrets.yml に以下のように devise_secret_key を設定する。
development: devise_secret_key: 2d391ca120e471b3b946209f99a85305... test: devise_secret_key: 2d391ca120e471b3b946209f99a85305... production: devise_secret_key: <%= ENV["DEVISE_SECRET_KEY"] %>
本番環境においては各秘密鍵を環境変数として指定し、secrets.yml自体には記述しないとのこと。
まとめ
- config/secrets.ymlにかかれている鍵は 「Rails.application.secrets.鍵名」として参照できる。
- config/secrets.ymlには、development, testモードの部分には生鍵を書く、puroducitonモード用の鍵は環境変数を埋め込む