vdeep

*

vdeepはプログラミング、IT、Web技術、ライフハックの事などなどを管理人okutaniがつぶやくブログです

【Rails】『dotenv』で環境変数を管理する方法

   

LINEで送る
Pocket


こんにちは、okutani(@okutani_t)です。本記事では、Ruby on Railsで使える環境変数を管理できるgem『dotenv-rails』の導入方法について解説しています。

以前、仕事でLaravelを使ってシステム開発をしていたのですが、「.env」という環境変数管理ファイルがデフォルトで用意されていて便利でした。

dotenv-railsを使うことで、Laravelと同じように環境変数を.envファイルにまとめることができます。

本記事では、執筆時の最新版であるRuby2.4.1、Ruby on Rails5.1.2で動作を確認しています。

dotenvは導入から使い方までとてもかんたんにおこなえるので、まだ導入していない方は本記事を参考にしてみてください。

スポンサーリンク

dotenv-railsの導入方法

それでは、なにはともあれGemfileにdotenv-railsを記述します。

$ vi Gemfile
gem 'dotenv-rails'

bundlerで導入。今回は--pathをつけてプロジェクト以下に導入しています。

$ bundle install --path vendor/bundle

これでルートディレクトリに置いた「.env」ファイルを自動でロードしてくれるようになります。

.envファイルの作成

それでは、実際に.envファイルを作成してみましょう。

と、その前に「.env.sample」というサンプル用のファイルを作成しておき、Gitで管理できるようにしておきましょう。

プロジェクトごとに設定項目は違ってくるかと思いますが、万が一流出してもOKなダミーデータや、設定項目のkeyだけを記述しておきます。

例えば、Twitter APIのCunsumer keyとConsumer secretを管理する場合は、.env.sampleを以下のように記述しておきます。

$ vi .env.sample
TWITTER_CONSUMER_KEY=ここにCONSUMER_KEY
TWITTER_CONSUMER_SECRET=ここにCONSUMER_SECRET

GitHubからプロジェクトをクローンしてきたときは、この.env.sampleをコピーして「.env」ファイルを作成すると楽に設定できますね。

それでは、そちらをコピーして実際に「.env」を作成してみます。

$ cp .env.sample .env
$ vi .env # 本番用のkeyなどに書き換え
TWITTER_CONSUMER_KEY=本番用CONSUMER_KEY
TWITTER_CONSUMER_SECRET=本番用CONSUMER_SECRET

これで.envを利用する準備が整いました。

変数の呼び出し方

.envに定義した環境変数を利用する場合は、利用したい場所で以下のように呼び出せばOKです。

ENV['TWITTER_CONSUMER_KEY'] # => CONSUMER KEYが取得できる
ENV['TWITTER_CONSUMER_SECRET'] # => CONSUMER SECRETが取得できる

これで便利に環境変数を管理することができますね。

.gitignoreの設定

.envファイルはGitの管理に入れたくないので、.gitignoreファイルに以下を追記しておきましょう。

$ vi .gitignore
.env

これで.envはGitの管理下から外れます。

先ほどの説明のとおり、.env.sampleはGit管理できるようにしておき、環境に合わせて.envを作成します。

こうすることで、各個人の環境、staging環境、本番環境など、状況に合わせた環境変数を利用することができますね。

Railsユーザーの参考になれば幸いです。

LINEで送る
Pocket

okutani (okutani_t) のヒトコト
Laravelで親しみがあった.envファイルをRailsでも使えていい感じです。導入もかんたんで良いですね!

Web開発のお仕事を募集しています

フリーランスのエンジニアとして、Webシステム開発のお仕事依頼を随時募集しています(現在の業務量によってお受けできない場合もあります)。

Ruby on Rails」「JavaScript(jQuery, Reactなど)」「HTML + CSS」を用いたシステム開発、「Heroku」等を用いたサーバー構築・運用、「Git」や「GitHub」を利用したソーシャルコーディングなどに対応しています。

ご依頼を検討している方は、下記リンク本ブログからのお問い合わせ、もしくはokutaniのポートフォリオからご連絡ください。

LINKお問い合わせ

LINKokutani's Portfolio


 - Ruby on Rails

スポンサーリンク

PC用AdSense

PC用AdSense

  こちらもどうぞ

vdeepのトップページへ戻る画像です。風船の形をした島を女の子が掴んでいます。