2013-08-12 13 views
16

Evreleme ve üretim ortamım Raylar yapılandırması, yalnızca birkaç şeyin farklı şekilde ayarlanmasıyla aynıdır (örn. Günlük düzeyi) ve ikisi arasındaki çoğaltmayı gerçekten yapmak istiyorum. çevre dosyaları. ÖrneğinCascading/Inherited/Shared Rails yapılandırma ortamları

, ben böyle bir şey var:

# 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 

Ayrıca benim geliştirme ortamı etkilemez paylaşılan yapılandırması oluşturmak için en iyi yolu herhangi bir öneriler? Bu dosyalar çalıştırılmadan önce Rails.env değişkeninin ilklendirildiği ve kullanıma sunulduğu

cevap

28

ile farklılık şey sarın ben shared_production adlı bir dosya var bu yüzden, ben 3 üretim benzeri ortamlar var .rb ben ortak yapılandırma koymak config/environments altında

MyApp::Application.configure do 
    config.cache_classes = true 
    config.consider_all_requests_local = false 
    #more shared configs 
end 

Ve sonra her ortam belirli yapılandırma dosyasında (production.rb, staging.rb, testing.rb) yapmam

require File.expand_path('../shared_production', __FILE__) 
MyApp::Application.configure do 
    config.log_level = :debug 
    #more environment specific configs 
end 
+3

DHH, http://signalvnoise.com/posts/3535-beyond-the-default-rails-environments adresinde daha fazla ayrıntıya sahip benzer bir yaklaşıma sahiptir. –

-2

. Yani, sadece config/application.rb gibi paylaşılan dosyadaki tüm ortak malzeme koymak ve Projelerimde

if Rails.env.development? 
    config.now_for_something_completely_different 
end 
+3

ı don Bu çözümü sevmiyor çünkü Rails'in her ortamın ayarlarını ayrı bir dosyaya bölmek için çok makul bir yaklaşımı altüst ediyor. Birisi yeni gelir ve uygulama üzerinde çalışırsa, çevre yapılandırma dosyasına yönelecek ve neler olup bittiği hakkında hiçbir fikre sahip olmayacaklardır; Bu arada, benim config/application.rb dosya koşullu yüklü, DRY ihlal karışıklıktır. Yine de girdiyi takdir ediyorum. – coreyward