46
20

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Rails】 初心者向け!gem 'dotenv-rails'の使い方

Last updated at Posted at 2021-02-26

はじめに

最近当たり前のように使用している'dotenv-rails'のgemと環境変数という言葉ですが、使い始めた頃は何が何だかよく分からなかった覚えがあります。そんな自分自身の復習と、同じような初心者の方の参考になればと思い、なるべく一つ一つ丁寧に、また画像なども掲載しつつ投稿させていただいております。

開発環境

ruby 2.6.3
Rails 5.2.4.4

dotenv-railsとは

環境変数を管理することができるgemです。
自身で作成したアプリケーションの直下に.envファイルを作成することで、パスワードなどネット上に公開させたくない情報を扱い、自動で読み込むことが可能です。

環境変数とは

参考書やネットで当たり前に出てくる「環境変数」という言葉。
私は当初この言葉の意味すら分かりませんでしたので、説明を掲載しておきます。
簡単に言うと、ネット上に公開させたくない情報を入れておく箱になります。この箱自体には、自身で任意の名前をつけることが可能です。つまり、ネット上に公開させたくない情報は、一度この環境変数という箱の中に入れ、コード上で使用することで、情報漏洩を防ぐことができます。

gemを導入

Gemfile.
gem 'dotenv-rails'
terminal.
$ bundle install

.env ファイルを作成

① アプリケーション名のディレクトリにカーソルを合わせ、右クリックします。

② New Fileを選択します。

③ ファイル名を「.env」にします。
  画像のような配置でファイルを作成できていれば、完成です!

(参考画像)
 

※ ①〜③をコマンド一つで作成することも可能です。
ターミナルでアプリケーションのディレクトリにいることを確認してから、「touch .env」でも可能です。

terminal.
username:~/environment/(アプリケーション名) $ touch .env

④ 以下のような形で必要な情報を記述してください。

..env
# Google map用
GOOGLE_API_KEY = "***************"

# 問い合わせ機能用
SEND_MAIL = "***************"
SEND_MAIL_PASSWORD = "***************"

# デプロイ用
DB_USERNAME = "***************"
DB_PASSWORD = "***************"
DB_HOST = "***************"
DB_DATABASE = "***************"

環境変数が設定できているか確認

コンソールを使用して、設定した環境変数を入力したときに、入力した番号が返ってくれば呼び出せています。

terminal.
$ rails c
2.6.3 :001 > ENV['GOOGLE_API_KEY']
=> "***************"

環境変数の記述の仕方

ENV['設定した名前']
たったこれだけの記述で環境変数を扱うことができます。

ENV['GOOGLE_API_KEY']
ENV['SEND_MAIL']

.gitignoreファイルへ追記

アプリケーション直下にある、Gitの管理に含めないファイル名を記述するファイルです。
こちらのファイルの他にも、ファイル名の前に.(ドット)が付いているものは、Gitの管理に含めないファイルとして取り扱われています。
※ こちらに「/.env」の記述をしないと、全ての情報がネット上に公開されてしまうので注意!

..gitignore
# 最終行に下記の記述を加えてください。
/.env

万が一GitHubにpushしてしまったら...

誤ってGithub上に公開してしまっている方は、下記のコマンドで.envをGitの管理から外してください。
コマンド実行後は、.gitignoreファイルに「/.env」を追記した上で、再度git pushをし直してください。

● git rm --cached [ファイル名]
  ファイル自体は残したままGitの管理から外すことが可能なコマンド

terminal.
$ git rm --cached .env

終わり

今回は以上になります。
私自身もプログラミング初心者ですが、同じ様な立場の方に少しでも参考になれば幸いです。
また、もし内容に誤りなどがございましたら、ご指摘いただけますと幸いです。

46
20
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
46
20

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?