2009-12-30 17 views
5

Bir sayfaya eklemek istediğim, ancak yalnızca üretim ortamında kullanmış olduğum bir JavaScript parçam var. Rayların takılması veya şartlı olarak dağıtım için bir yolu var mı. "Rails.env.production ise?" Yapabileceğimi biliyorum. Ancak, sayfa her yüklendiğinde bu koşul kontrolünü yapmayı tercih etmem.dağıtımda erb dosyasını değiştir

#config/environments/development.rb 
SNIPPET = "" 

#config/environments/production.rb 
SNIPPET = "<script src='whatever.js'></script>" 

#app/views/file.html.erb 
<%= SNIPPET %> 

cevap

1

her ortamın yapılandırma dosyasında sabit oluşturmaktır.

özel yardımcı yöntemini kullanmayın Neden:


def snippet 
    if RAILS_ENV == "production" 
    javascript_tag "whatever" 
    elsif . . .
end
sonra aynı sözdizimini kullanabilirsiniz:

<%= snippet %>

ve bir kaç avantajları sağlar: Diğer raylar yardımcıları için

  • erişimi
  • Yapılandırma dosyanız, raw html
ile temizlenmeyecek
+0

Yapılandırma dosyasında görünüm kodu koyma fikrinden hoşlanmıyorum. Görünüm yardımcıları için budur. –

+0

Elbette, bu adil. Gerçekten vermeye çalıştığım şey: Görünümlerde RAILS_ENV'ye dayalı koşullu mantık yapmayın. Ortam yapılandırma dosyaları budur :-) – Ben

5

Bir if ifadesinin yükü endişe olmaz: Ben bu durumda ne ne

+0

Aslında, sahip olduğuma benzer, ancak "if" kontrolünden kaçınmaya çalışıyordum. – rornoob

+0

Eğer gerçekten endişeliyseniz, "if" ile ve olmadan zamanlamaya çalışın, ve tahmin edeyim ki fark edilebilir bir fark elde edemezsiniz. – klochner

İlgili konular