業務で使ってるGem「global」がかなり便利だったのでメモしておく。

https://github.com/railsware/global

導入手順

1.Gemfileに追加

gem 'global'

2.initiallizersに追加

config/initializers/global.rb

Global.configure do |config|
  config.environment = Rails.env.to_s
  config.config_directory = Rails.root.join('config/global').to_s
end

ここまでやれば、config/global/xxxx.ymlにファイルを置くと設定値を読んでくれる

# yamlファイルの例
default:
  error-email: myname@example.com
production:
  error-email: error@example.com

変数へのアクセス方法

Global.error-email # 環境によって適切な方にアクセス

さらに

階層を深くするには、単にyamlの階層を深くするか
config/global/xxxx/yyyy.yml
のようにファイルパスを深くすれば期待通りに動いてくれる。

便利!