🦔

Railsで.envファイルを使おう!

に公開

Railsは、デフォルトではenvファイルを読み込んではくれません

  gem 'dotenv-rails'

をrails/Gemfileへ追加しましょう!
※ 本番環境では .env ではなく、サーバの環境変数や credentials.ymlを利用することが多いので、開発環境で使う場合がほとんどです。

ファイルの中身

FRONTEND_URL=http://localhost:5174

実際に使うところ

<script type="module" src="<%= ENV['FRONTEND_URL'] || 'http://localhost:5174' %>/@vite/client"></script>

こんな感じで使えるよ

ポイント .envファイルは、環境ごとに種類がたくさんあるよ!

.envファイルって案外種類があります。
例えば、.env, env.test,.env.development等々。本番環境や、開発環境、テスト環境で違うものを設定できます。その判別は、起動時のコマンドによって変わっているようにです!

rails s ※開発環境
RAILS_ENV=production rails s ※本番環境
RAILS_ENV=test rails ※テスト環境でのマイグレーションなどに使用

下記にそれぞれのファイル名の優先順位だったりは、dotenv側が判定してくれているので、確認してみてください!
https://github.com/bkeepers/dotenv?tab=readme-ov-file#customizing-rails

本番環境の環境変数は、セキュリティ観点からcredentialsの方がおすすめだけど、.envで管理するなら、.gitignoreを忘れずに。

Discussion