前置き
今回は.envに記載する方法を用いての環境変数の設定の説明したいと思います。
初学者の説明ですので不備など気なる点がありましたらコメントください。
railsの環境構築は省略しますのでご了承お願いします。
#手順
railsで.envのを使用するにはまずgemをインストールする必要があります
group :development, :test do
#以下を追加
gem 'dotenv-rails'
end
bundle install
注意
今回、本番環境ではherokuを想定しているためdevelopment :testに記入してます
もしAWSのEC2にデプロイする際はrubyとかrailsのバージョンとか書いてる列に記述する
__bundle install__したら
カレントディレクトリ(gemfileとかが置いてあるとこ)に.envのfileを作成する
その後__application.rb__に以下を追記する
module BlogAppIk
class Application < Rails::Application
# Initialize configuration defaults for originally generated Rails version.
config.load_defaults 6.0
#以下を追加する
if Rails.env.development? || Rails.env.test?
Bundler.require(*Rails.groups)
Dotenv::Railtie.load
end
...
コード説明
if Rails.env.development? || Rails.env.test?
上記のコードはテスト環境または開発環境の時のみ.envを読み込むようにする
Bundler.require(*Rails.groups)
Dotenv::Railtie.load
上記は.envを読み込む設定コード
ここまできたら設定は終了、あとは.envに環境変数を設定して、コンソールでしっかりと取得できるか確認する
TOKEN = 'AAAAAA'
確認作業なので変数は適当に設定okです
記述したら__rails c__でコンソール立ち上げてで確認
:001:0\> ENV['AWS_API_TOKEN']
=> "AAAAAA"
上記のように設定した値が取得できたらOK!
#注意点
.envはgithubに絶対あげない
なぜか?
機密情報を外部に漏らさないため
awsのキーやトークンを設定を記述している場合.envをgithubにアップしてしまうと機密情報が公開されてawsのキーやトークンを盗まれて高額請求されることがあるから
対策
.gitignoeに.envを追加する
.gitignoeに追加すると.gitignoreに書いてあるfileはgitの対象外にするためgithubにあがらない
.gitignoeに記述しているファイル、フォルダは灰色になる
以上で説明になります誰かの参考になればと思います