2009-12-30 15 views
5

पर ERB फ़ाइल को संशोधित मैं जावास्क्रिप्ट का एक टुकड़ा है कि मैं एक पेज में जोड़ना चाहते हैं नहीं है, लेकिन केवल उत्पादन वातावरण में। क्या रेलों को तैनाती पर सशर्त रूप से शामिल करने या सशर्त रूप से शामिल करने का कोई तरीका है। मुझे पता है कि मैं कर सकता हूं "अगर Rails.env.production?" लेकिन पेज को लोड होने पर हर बार इस स्थिति की जांच नहीं करना चाहूंगा।तैनाती

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

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

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

उत्तर

1

मैं इस स्थिति में क्या करना प्रत्येक परिवेश के कॉन्फ़िग फ़ाइल में एक निरंतर पैदा करते हैं।

एक कस्टम सहायक विधि का उपयोग नहीं क्यों:


def snippet 
    if RAILS_ENV == "production" 
    javascript_tag "whatever" 
    elsif . . .
end
तो आप एक ही वाक्य विन्यास का उपयोग कर सकते हैं:

<%= snippet %>

और आप एक जोड़े को लाभ मिलेंगे:

  • अन्य रेल सहायकों
  • के लिए उपयोग
  • अपने कॉन्फ़िग फ़ाइल कच्चे एचटीएमएल से अटे पड़े नहीं की जाएगी
+0

मैं config फाइल में दृश्य कोड डालने के विचार पसंद नहीं है। यह वही है जो दर्शक मददगार हैं। –

+0

निश्चित रूप से, यह उचित है। वास्तव में मैं क्या प्रदान करने के लिए कोशिश कर रहा हूँ है: विचारों में RAILS_ENV के आधार पर सशर्त तर्क नहीं करते हैं। यही कारण है कि पर्यावरण config फ़ाइलों :-) – Ben

5

मैं एक if बयान की भूमि के ऊपर के बारे में चिंतित नहीं होगा:

+0

के लिए हैं, कि मैं क्या करने के लिए इसी तरह की है, लेकिन मैं "अगर" जांच से बचने के लिए कोशिश कर रहा था। क्या तुम सच में चिंतित हैं – rornoob

+0

हैं, के साथ और "अगर" बिना यह समय की कोशिश, और मैं तुम्हें एक उल्लेखनीय अंतर नहीं मिलेगा अनुमान लगा रहा हूँ। – klochner

संबंधित मुद्दे