rails上で定数を管理するconfig
というgemを使って管理することができます。
元々はrails config
という名前だったそうですが、rails以外でも使えるためconfig
に統一されたそうです。が、ずいぶんわかりづらい名前ではなかろうか・・w
(rails)configの特徴
rails config
の特徴としてはyml形式のファイルで直感的に定数の管理をできます。ymlの特徴ですがファイルを見ただけで非常にわかりやすい。後述しますが、呼び出す際もドット記法で簡単に呼出せます。この直感に訴える感じがとっても好きです。
また、もう一つの大きな特徴が環境毎に定数を管理することができることです。
インストール
早速インストールしていきます。
1 2 |
gem "config" |
1 2 |
bundle install |
gemのインストールが完了したら、下記でconfig
のインストール。
1 2 |
bundle exec rails g config:install |
ファイルが生成される。
1 2 3 4 5 6 7 8 9 |
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 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
config/initializers/config.rb # → config全般の設定ファイルで、後述のSettingsのconst名とかも変更可能。 config/settings.yml # → すべての環境の定数を設定する。 config/settings.local.yml # → ローカル環境専用の定数の設定 config/settings # → development.yml, test.yml, production.ymlを設定する config/settings/development.yml # → 開発環境専用の定数を設定 config/settings/production.yml # → 本番環境専用の定数を設定 config/settings/test.yml # → テスト環境専用の定数を設定 .gitignore # → 下記が追加される。 # config/settings.local.yml # config/settings/*.local.yml # config/environments/*.local.yml |
ymlに定数を追加する。
すごく直感的に書けます。
1 2 3 4 5 6 7 8 9 10 11 |
my_name: 'poyo' my_product: name: 'hogehoge' key: 'xxxxx' your_product: name: 'fugafuga' key: 'xxxxx' |
試しにviewに書いてみます。
1 2 3 4 5 6 7 |
# app/views/layouts/application.html.erb <h1><%= Settings.my_product.name %></h1> |
画面にはhogehogeと表示されるはずです。
その他もドットでつなぐだけでガンガン書くことができます。
1 2 3 4 5 |
Settings.my_name # → poyo Settings.your_production.name # → fugafuga |
以上です!