2009-11-26 8 views
5

अगर मैं, मेरी रेल environment.rb में एक निरंतर उदाहरण के लिए है ...Capistrano तैनाती स्क्रिप्ट में एक रेल पर्यावरण परिवेश का उपयोग कैसे करें?

SOME_CONSTANT = 3 

यह किसी भी तरह मेरी Capistrano deploy.rb में इस का उपयोग करना संभव है? यह आसान लगता है लेकिन मैं यह नहीं समझ सकता कि कैसे।

+0

आपको रेल पर्यावरण को लोड करना होगा (पर्यावरण.आरबी की आवश्यकता के माध्यम से), मुझे लगता है। आप यहां क्या हासिल करने की कोशिश कर रहे हैं? –

+0

यह निरंतर परिभाषित किया गया है? क्या फाइल? क्या यह कक्षा या मॉड्यूल में है? – nicholaides

उत्तर

3

यह काम कर समाप्त हो गया:

एक फ़ाइल config/initializers/my_constant.rb

वहाँ में मेरे निरंतर डाल बनाया (रेल स्वचालित रूप से फ़ाइलों को लोड करता है इसलिए मैं अपने अनुप्रयोग में निरंतर उपयोग कर सकते हैं) तैनाती में

तो। आरबी load 'config/initializers/my_constant' जोड़ा गया ताकि इसका उपयोग भी किया जा सके।

+0

एनएनवी के माध्यम से या 'config.rb' फ़ाइल में स्वयं स्थिरता को परिभाषित करने में क्या अंतर होता है? – jjmerelo

1

इन स्थिरांकों को lib में फ़ाइल में परिभाषित क्यों नहीं करें और फिर आपके रेल ऐप और कैपफ़ाइल दोनों में फ़ाइल की आवश्यकता है?

2

आपको इसे ENV [] हैश (यह एक रूबी चीज़) के माध्यम से एक्सेस करना चाहिए, यहां टीईआरएम पर्यावरण चर का उपयोग करने वाला एक उदाहरण है।

puts "Your Terminal is #{ENV['TERM']}"

आप एक गहरे लाल रंग का निरंतर, अपने रेल पर्यावरण से की जरूरत है, तो आप इसे लोड करना चाहिए:

require 'config/environment'

खबरदार है कि यह आपके पूरे आवेदन वातावरण लोड होगा, आप उपयोग करना सोचना चाहिए कॉन्फ़िगरेशन स्टोर करने के लिए AppConfig, या SimpleConfig (यहां अन्य टूल डालें) जैसे कुछ, तो आपको केवल टूल लोड करना होगा, जो आपकी कॉन्फ़िगरेशन फ़ाइलों को संसाधित करता है।

0

चूंकि मूल्य केवल रेल ऐप द्वारा उपयोग नहीं किया जाता है, इसलिए मैं संभवत: ऐसी भाषा कॉन्फ़्रेंस जानकारी को एक भाषा अज्ञेय प्रारूप (यामल, जेसन, आईएनआई, एक्सएमएल) में संग्रहीत करता हूं जिसे संभावित पक्ष के बिना विभिन्न उपकरणों द्वारा आसानी से पार्स किया जा सकता है प्रभाव।

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