SNS認証とか実装するとシークレットキーなどをconfigに記述しないといけないのだが、ハードコーディングは危険すぎるので環境変数を使いたい、そんなときにオススメなのがdotenv。

プロジェクトのルートディレクトリに .env というファイルを作成して環境変数を記述しておくだけで、Railsが勝手に読み込んでくれる。

手順は以下。

1 … gemに追加

1
gem 'dotenv-rails', require: 'dotenv/rails-now'

2 … bundle install

1
$ bundle install

3 … プロジェクトのルートディレクトリに .env ファイルを作成&編集 (中身はご自由に)

1
2
export TWITTER_KEY="xxxxxxxxxxxxxxxxx"
export TWITTER_SECRET="xxxxxxxxxxxxxxxxxxxxxx"

4 … Rails側で呼び出せるか確認

1
2
3
p ENV['TWITTER_KEY']
# => xxxxxxxxxxxxxxxxx

うーん便利。