410
390

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

環境によって変わる設定値はdotenvを使うと便利

Last updated at Posted at 2013-12-24

Railsの環境のよって変わる設定値をどうするか問題については、rails_configとかsettingslogicなどのgemがよく紹介されているけど、今回はdotenvというgemを紹介したいと思います。

これは、仕組みとしてはとても簡単なもので、カレントディレクトリに .env という名前で環境変数を書き込んでおくと、自動的に ENV の中にその値を追加してくれるというものです。

もともと foreman の機能でしたが、切り出されて別のgemになりました。

なので foreman や heroku を使っている人は知っているかと思います。

# .env
AWS_ACCESS_KEY_ID="hogehoge"
AWS_SECRET_ACCESS_KEY="mogamoga"
puts ENV["AWS_ACCESS_KEY_ID"] # => nil
Dotenv.load
puts ENV["AWS_ACCESS_KEY_ID"] # => "hogehoge"

Railsの場合は、dotenv-railsを使います。自動でDotenv.loadしてくれます。

gem 'dotenv-rails'

この.envファイルはVCSにコミットせず、それぞれの開発環境で設定します。

なぜこれが便利なのかというと、設定値へは常に ENV を使ってアクセスすることができるからです。

それが元々環境変数として設定されているのか、.env で設定されているのかは意識する必要がありません。

本番サーバでは環境変数として設定されていて、開発環境ではほかのプロジェクトと競合するなどの理由でグローバルに設定できない設定値も、プロジェクトごとにローカルに設定することができます。

さらに、/bin/dotenv というコマンドを使うと、ruby でないコマンドでも.envの設定を引き継いで実行することができます。

ところで

Repro株式会社 では一緒に切磋琢磨できる仲間を募集しています! ぜひこちらをごらんください!

410
390
0

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
  3. You can use dark theme
What you can do with signing up
410
390

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?