バージョン
config (1.4.0)
spring (2.0.2)
Gemfile
group :development, :test do
gem 'spring'
end
gem 'config'
環境変数 SETTINGS_YML_NAME を優先して見るように
config/initializers/config_environment.rb
if name = ENV['SETTINGS_YML_NAME']
Settings.add_source!("config/settings/#{name}.yml")
Settings.reload!
end
settings.yml -> development.yml -> SETTINGS_YML_NAME.yml の順に優先度が高い(上書きしている)
array型をymlで設定していたら↑の読み込み順に追加されてしまうので、以下のように config.overwrite_arrays = true
しておく。
config/initializers/config.rb
Config.setup do |config|
config.const_name = "Settings"
config.overwrite_arrays = true
end
springを再起動しなくても読み直すように
config/application.rb
class Application < Rails::Application
Config::Integrations::Rails::Railtie.preload
end
config/spring.rb
if defined? Spring
Spring::application_root_path ||= Rails.root
Dir.glob('config/settings*').each{ |settings| Spring.watch settings }
Dir.glob('config/settings/*').each{ |settings| Spring.watch settings }
end