Каскадные/Наследуемые/Общие среды конфигурации Rails
Моя конфигурация Rages и производственной среды на 99% одинакова с несколькими вещами, установленными по-разному (например, уровень журнала), и я действительно хотел бы устранить дублирование между двумя файлами среды.
Например, у меня есть что-то вроде этого:
# config/environments/staging.rb
MyApp::Application.configure do
config.cache_classes = true
config.static_cache_control = "public, max-age=31536000"
config.log_level = :debug
# ...
end
# config/environments/production.rb
MyApp::Application.configure do
config.cache_classes = true
config.static_cache_control = "public, max-age=31536000"
config.log_level = :info
# ...
end
Любые рекомендации по наилучшему способу создания общей конфигурации, которая также не влияет на мою среду разработки?
Ответы
Ответ 1
В моих проектах у меня есть 3 производственные среды, поэтому у меня есть файл shared_production.rb в config/environments
где я помещаю общую конфигурацию
MyApp::Application.configure do
config.cache_classes = true
config.consider_all_requests_local = false
#more shared configs
end
И затем в каждой среде настраивается файл конфигурации (production.rb, staging.rb, testing.rb), я делаю
require File.expand_path('../shared_production', __FILE__)
MyApp::Application.configure do
config.log_level = :debug
#more environment specific configs
end