search
LoginSignup
8
Help us understand the problem. What are the problem?

More than 3 years have passed since last update.

posted at

[Rails]環境変数って何だろう?作る理由と作り方

環境変数について

まだRailsを勉強し始めて1ヶ月半くらいなのですが、アプリのデプロイ中に環境変数というものに出会ったので

  • 環境変数を作る理由
  • 環境変数の作り方

について調べていこうと思います。

 環境変数を作る理由について

例えばGithubにソースコードをあげた際に秘密鍵などをそのまま書いてしまっていると、第3者がその鍵を知ることができてしまいます。これを防ぐために環境変数をOS上に保存しておき、<%= ENV["SECRET_KEY"] %>のようにプログラムから変数として呼び出して使用します。

環境変数の作り方

今回は ~/.bash_profileに書く方法をメモしておきたいと思います。
DOTENVで書く書き方は以下の記事がとてもわかりやすいです!

[Ruby on Rails]環境変数の設定方法(.bash_profile、Dotenv-rails)

まず、開発環境でも本番環境でもどちらも~/.bash_profileに書いていきます。

vi ~/.bash_profile  #bash_profileを編集する

vimなので入力は「i」を押して入力です。
秘密にしたいパスワードなどを環境変数に代入していきます。

# bash_profileファイルの中に記述していく
...
export SECRET_KEY='piyopiyo'
export SECRET_PASWORD='foobar'

入力が終わったら「Esc」を押し、「:wq」を入力して、上書き保存します。

環境変数を書いたら、適用させるために以下のコマンドをターミナル上で打ちます。

source ~/.bash_profile

これで、環境変数が使えるようになります。

使える環境変数はこれで確認できます。

printenv

アプリ内のファイルなどで環境変数を呼び出したい時は
rbファイルの場合は、そのまま下のコマンドで大丈夫だと思うのですが

ENV["SECRET_KEY"]
ENV["SECRET_PASSWORD"]

database.ymlなどのファイルの場合はRubyの記述として、このように書くと変数を使うことができるかと思います!

<%= ENV["SECRET_KEY"] %>

以上です。:santa:

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
What you can do with signing up
8
Help us understand the problem. What are the problem?