こちらもなんとなくで使用しているので
きちんと言語化できるように深堀りして調べる
##環境変数とは
環境変数とは外部サービスのパスワードや、APIの秘密鍵など
Githubにあげたくない機密情報の漏洩を防ぐ
ために
サーバーなどのOSに保存しアプリに渡す仕組みのこと
→そのままGithubにあげてしまうと、外部サービスを使用され
多額の請求がきた などの記事をみたことあるので気をつける…
またOSが動いているときに使用する変数
プログラムの実行時などに必要となる
##設定方法
今回行うのは
「dotenv-rails」というgemを使う方法
通常.envを読みこませるにはコマンドが必要だが、
「dotenv-rails」というgemを導入することにより自動的に読み込んでくれるらしい
他にも「.bash_profile」に記述する方法があるらしい
###「Dotenv-rails」を使用して設定してみる
####Gemをインストールする
まずは、Gemをインストール
gem 'dotenv-rails'
お約束
bundle install
####「.envファイル」を作成
ルートディレクトリに「.env」というファイルを作成する
自分は、sample_app で作成しています
~/environment/rails/sample_app
❯ pwd
/Users/ユーザー名/environment/rails/sample_app
❯ touch .env
~/environment/rails/sample_app
❯ ls
Gemfile Rakefile config lib public tmp
Gemfile.lock app config.ru log storage vendor
README.md bin db package.json test
~/environment/rails/sample_app
❯ ls -A
.env .ruby-version Rakefile config.ru package.json tmp
.git Gemfile app db public vendor
.gitignore Gemfile.lock bin lib storage
.history README.md config log test
→ファイルを作成してlsコマンドでみてもない!と焦らない
オプションで「-A」をつけるとみることができます
####環境変数を設定してみる
作成した.envファイルに環境変数を記述します。
vimとかで編集してください
#使用したいキーやパスワードを記述
KEY='*******'
SECRET_KEY='*******'
```
####gitignoreを編集する
「.envファイル」に定義されている情報を不正利用されないように、
**Gitの管理から外す**必要がある
そのため、.gitignoreを設定する
```:gitignore
#下記を追記
.env
```
これで、Gitにあげる心配がなくなりました
#####もし、Gitの管理下にあげてしまった場合
既にgitにpushしてしまっている場合下記のコマンドで
「.envファイル」をgitの管理から外せる
```
git rm --cached .env
```
####環境変数を呼び出す
呼び出しかたは.bash_profileと同様です。
```sample.rb
#設定した環境変数の呼び出し
ENV['KEY']
ENV['SECRET_KEY']
```
「**rails c**」 でも確認できるそう
```rb
irb(main):002:0> ENV['KEY']
=> '*******'
```
##参考記事
https://railsguides.jp/configuring.html
https://wa3.i-3-i.info/word11027.html
https://qiita.com/yuichir43705457/items/7cfcae6546876086b849
http://e-words.jp/w/%E7%92%B0%E5%A2%83%E5%A4%89%E6%95%B0.html
https://qiita.com/hayatokunn/items/d8a9e9deec33e9022b4f
https://qiita.com/ryosuketter/items/ceb592dc6b23a20e51b5