2015-04-28 11 views
5

मैंने सिनात्रा पर आवेदन बनाया है, जो एक साधारण एपीआई का प्रतिनिधित्व करता है। मैं उत्पादन और विकास पर तैनाती करना चाहता हूं। मैं तैनाती के दौरान चुनना चाहता हूं, चाहे वह देव या उत्पादन हो, और तैनाती के प्रकार के आधार पर कुछ तरीकों का तर्क बदलना चाहिए। क्या कोई विचार है, यह कैसे किया जा सकता है और इस मुद्दे को हल करने के कुछ उदाहरण हैं।रुबी सिनात्रा उत्पादन और विकास पर काम करने के लिए कॉन्फ़िगर किया गया

उदाहरण: मैं कोड

get '/api/test' do 
    return "It is dev" 
end 

लेकिन उत्पादन के लिए तैनाती मैं के बाद रन/API देखें चाहते हैं/परीक्षण के बाद

It is PROD 

यह कैसे किया जा सकता है है?

+1

के संभावित डुप्लिकेट [मैं कैसे सिनात्रा बताऊँ क्या पर्यावरण (विकास, परीक्षण, उत्पादन) यह क्या है?] (Http://stackoverflow.com/questions/19420321/how-do-i-tell-sinatra-what-environment - विकास-परीक्षण-उत्पादन-यह है) –

+0

@AmauryMedeiros मैंने अपना प्रश्न अपडेट किया, मुझे समझ में नहीं आता कि यह कैसे काम करें। कृपया मुझे समझाएँ। –

+0

मनोनीत डुप्लिकेट बहुत बेकार है, और _quite_ डुप्लिकेट नहीं है। –

उत्तर

4

का प्रयास करें:

वातावरण RACK_ENV वातावरण चर के माध्यम से स्थापित किया जा सकता। डिफ़ॉल्ट मान "विकास" है। "विकास" वातावरण में सभी टेम्पलेट्स अनुरोधों के बीच पुनः लोड किए जाते हैं, और विशेष not_found और त्रुटि हैंडलर आपके ब्राउज़र में स्टैक निशान प्रदर्शित करते हैं। "उत्पादन" और "परीक्षण" वातावरण में, टेम्पलेट डिफ़ॉल्ट रूप से कैश किए जाते हैं।

विभिन्न वातावरण चलाने के लिए, RACK_ENV वातावरण चर सेट:

RACK_ENV = उत्पादन माणिक my_app.rb

तुम भी development? और production? तरीकों का उपयोग कर सकते हैं तर्क को बदलने के लिए:

get '/api/test' do 
    if settings.development? 
    return "It is dev" 
    else if settings.production? 
    return "It is PROD" 
    end 
end 

यदि settings.development? काम नहीं करता है, तो आप Sinatra::Application.environment == :development

आज़मा सकते हैं
3

Sinatra Documentation के अनुसार इस

get '/api/test' do 
    if settings.development? 
    return "It is dev" 
    else 
    return "Not dev" 
    end 
end 

Official guide -> environments

+0

ठीक है, लेकिन मैं dev/prod पर एक प्रोजेक्ट कैसे स्थापित करूं? –

+0

मुझे लगता है कि 'माणिक myapp.rb -E production' या [इस तरह] (http://stackoverflow.com/questions/5832060/sinatra-configuring-environments-on-the-fly#5834009) – Renaud

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