rails_configで定数を管理する

Posted by Tatsuyano on Wed, Apr 8, 2015
In
Tags ruby, rails

環境ごとに定数を管理したい時は、rails-config を使うのが便利。

インストール

Gemfileに下記を追加しbundle install

# Gemfile
gem 'rails_config'

bundle install後、rails_config の初期設定を実行

$ rails g rails_config:install
      create  config/initializers/rails_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

## 環境ごとに読み込まれるファイル
環境(env) ファイル名
共通 config/settings.yml
(ローカルの)開発環境 config/settings.local.yml
開発環境 config/settings/development.yml
テスト環境 config/settings/test.yml
本番環境 config/settings/production.yml
開発環境で同じ定数を読み込む場合、優先度は下記の順番でなります。 1. `config/settings.local.yml` 2. `config/settings/development.yml` 3. `config/settings.yml` ちなみにこの`config/settings.local.yml`は、gitignore の対象ファイルです。 ※ `rails g rails_config:install`実行時に追加されます。
config/settings.local.yml
config/settings/*.local.yml
config/environments/*.local.yml

## 定数の出力 例えば`config/settings.local.yml`を、以下のように設定した場合
site:
  url: 'http://hoge.jp'
  desc: 'hogehoge'

View側の出力は以下のようになります。

<%= Settings.site.desc %> # hogehoge
ちなみにプリフィックスのSettingsは、config/initializers/rails_config.rbで変更できます。

参考サイト