Ruby on Rails、Herokuでソース公開したくない値に環境変数を使用

Ruby on Railsプログラミング
この記事は約3分で読めます。

GitHubなどでソース公開する場合、データベースのユーザ名やパスワードなどは公開したくない。

また、FacebookアプリのFacebookアプリID、Facebookアプリシークレットキーも同様である。

なので、そういう値は環境変数を使用する。

スポンサーリンク

Rubyファイル

まずは、Rubyファイル。

ENV」を使用すると、以下のように環境変数の値を取得できる。

#FacebookアプリID、Facebookアプリシークレットキーを環境変数より取得
app_id = ENV["FACEBOOK_APP_ID"]
app_secret = ENV["FACEBOOK_APP_SECRET"]

database.ymlファイル

続いて、ymlファイル。

こちらも同様に「ENV」を使用し、「<%= ~ %>」で埋め込むと、以下のように環境変数の値を取得できる。

development:
  adapter: postgresql
  encoding: unicode
  database: <%= ENV&#91;"DB_DEV_NAME"&#93; %>
  pool: 5
  username: <%= ENV&#91;"DB_DEV_USER"&#93; %>
  password: <%= ENV&#91;"DB_DEV_PASS"&#93; %>
test:
  adapter: postgresql
  encoding: unicode
  database: <%= ENV&#91;"DB_TEST_NAME"&#93; %>
  pool: 5
  username: <%= ENV&#91;"DB_TEST_USER"&#93; %>
  password: <%= ENV&#91;"DB_TEST_PASS"&#93; %>
production:
  adapter: postgresql
  encoding: unicode
  database: <%= ENV&#91;"DB_PRODUCT_NAME"&#93; %>
  pool: 5
  username: <%= ENV&#91;"DB_PRODUCT_USER"&#93; %>
  password: <%= ENV&#91;"DB_PRODUCT_PASS"&#93; %>

ローカルとHerokuの環境変数に値を設定

Windowsの場合の環境変数への設定は、下記の開発環境(ローカル)のやつ。

Herokuの場合は、下記の本番環境(Heroku)のように「heroku config:set」で設定する。

最後の「cmd」でコマンドプロンプト画面を閉じないようにする。

なお、俺はこんな感じで環境変数を設定するファイルを「settings.bat」として、プロジェクトのフォルダ直下に置いて、Railsを触る前にまず実行している。

REM 開発環境(ローカル)
SET FACEBOOK_APP_ID=XXXXXXXXXXXXXXX
SET FACEBOOK_APP_SECRET=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

REM 本番環境(Heroku)
heroku config:set FACEBOOK_APP_ID=XXXXXXXXXXXXXXX
heroku config:set FACEBOOK_APP_SECRET=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

REM コマンドプロンプト画面を閉じない
cmd

うん、なかなか便利だ。

スポンサーリンク
スポンサーリンク
プログラミング
えふめん

業務系SE・社内SEの仕事を通じて学んだことや調べたことを書いています。

えふめんをフォローする
\よかったらシェアしてね/
この記事が気に入ったら
いいね!しよう
最新情報をお届けします。
俺の開発研究所

コメント

タイトルとURLをコピーしました