【Rails】gem configについて

はじめに

 アプリを開発していく中で本番環境と開発環境で値を変えたいといったケースが出てくると思います。たとえばホストの情報を管理したい時などに使えます。メールを送る下準備としてホスト情報を設定しておく必要があるのですが、ホスト情報って開発環境、ステージング環境、本番環境で異なりますよね? 例えばこのように。

  • 開発環境・・・localhost:3000
  • ステージング環境・・・localhost:3000
  • 本番環境・・・exumple.jp

これを素直に実装しようとするとこのようになるはずです。 gem configを利用することで、Ruby on Railsで便利に定数を管理することができます。

設定

Gemfile

gem 'config'
$ bundle install

初期設定

以下のコマンドを実行して、configの初期設定をおこなっていきます。

$ bundle exec rails g config:install
Running via Spring preloader in process 30847
      create  config/initializers/config.rb
      create  config/settings.yml
      create  config/settings.local.yml
      create  config/settings
      create  config/settings/development.yml
      create  config/settings/production.yml
      create  config/settings/test.yml
      append  .gitignore

「config/」以下にいろいろとconfig関連のファイルが生成されました。

それぞれのファイルの役割は以下のとおりです。 Image from Gyazo

設定方法

web:
  host: 'localhost:3000'

例 config/settings/development.yml

   Settings.service.name
   Settings.service[:name]
   Settings[:service][:name]