Ruby on Rails プログラミング

Rails 8.1で.envを使った環境変数の設定方法

Railsアプリでは、APIキーやパスワードなどの機密情報をコードに直接書かないことが重要です。
そこでよく使われるのが .env ファイルによる環境変数管理です。

この記事では Rails 8.1で.envを設定する方法を解説します。

この記事を書いてる人

082p
082p

ご訪問、ありがとうございます!

システムエンジニア兼動画クリエーターとして活動しています。
主にRubyを得意とし、Ruby on Railsを中心にWebアプリケーション開発を行っています。
業務ではSQLやJavaScriptに触れることも多く、バックエンドからデータベースまで幅広く対応しています。
このブログでは、Ruby on RailsやPython(Django)などのWebアプリケーション開発やデータベース関連の技術記事を中心に、時々C#やWPFなどの開発内容についても発信しています。

dotenv-railsをインストール

Railsで.envを使う場合は、
dotenv-railsというGemを利用するのが一般的です。

Gemfileに追加します。

gem 'dotenv-rails', '~> 3.2'

インストール

bundle install

.envファイルを作成

プロジェクトのルートに .env を作成します。

.env

API_KEY=123456789
SECRET_TOKEN=abcdefg
STRIPE_SECRET_KEY=sk_test_xxxxxx

ポイント

  • = の前後にスペースは入れない
  • 文字列でもクォートは基本不要

Railsで環境変数を読み込む

Railsでは以下で取得できます。

ENV["API_KEY"]

api_key = ENV["API_KEY"]

または

ENV.fetch("API_KEY")

fetchは未設定時にエラーになるため安全です。

.gitignoreに追加(重要)

.env絶対にGitにコミットしないようにします。

.gitignore

.env

理由

  • APIキー
  • パスワード
  • Secret情報

などが含まれるためです。

.env.example を作る(おすすめ)

チーム開発では .env.example を作ると便利です。

.env.example

API_KEY=
SECRET_TOKEN=
STRIPE_SECRET_KEY=

新しい開発者はこれをコピーします。

cp .env.example .env

本番環境では使わない

.env は基本 ローカル開発用です。

本番では

  • Heroku
  • Render
  • Fly.io
  • VPS

などの 環境変数設定を使います。

例(Heroku)

heroku config:set API_KEY=xxxx

まとめ

Railsで環境変数を管理するなら

  1. dotenv-railsをインストール
  2. .env を作成
  3. ENV["KEY"] で取得
  4. .env はGitに入れない

これで 安全にAPIキーや秘密情報を管理できます。

-Ruby on Rails, プログラミング