2011-12-02 24 views
11

रेल, मुझे वैरिएबल को परिभाषित करना चाहिए जिसे रेल स्टैक्स की प्रत्येक परत द्वारा पहचाना जा सकता है।आवेदन व्यापक वैश्विक चर

उदाहरण के लिए, मैं एक CUSTOMER_NAME='John' चर जो सहायक, रेक कार्य, नियंत्रक और मॉडल में पहुँचा जा सकता है करना चाहते हैं। मुझे इस चर को रेल ऐप में कहां परिभाषित किया जाना चाहिए?

मैं रेल v2.3.2

+0

आप जो पूछ रहे हैं वह परिवर्तनीय नहीं है, लेकिन निरंतर, इसका क्या अर्थ है: इसे एप्लिकेशन के भीतर से सेट नहीं किया जा सकता है। मुझे खोज इंजन द्वारा यहां गुमराह किया गया था क्योंकि गलत शब्द का उपयोग यहां किया जाता है। – Paul

उत्तर

13

उपयोग कर रहा हूँ एक प्रारंभकर्ता में /app/config/initializers में यहां के सभी .rb फ़ाइलें लोड करने के लिए, मैं आमतौर पर इस तरह बातों के लिए एक कहा जाता preferences.rb पैदा करते हैं।

देखें: http://guides.rubyonrails.org/configuring.html#using-initializer-files

8

आप एक सच्चे वैश्विक निरंतर करना चाहते हैं? ::COSTUMER_NAME का प्रयोग करें। आप एक असली वैश्विक चर चाहते हैं? $COSTUMER_NAME (निराश) का प्रयोग करें। आप एक अनुरोध-वैश्विक चर चाहते हैं? #env विधि में Hash का उपयोग करें।

MyApp::Application.configure do 
    # ... 
    config.my_key = 'some "global" value' 
end 

फिर आप सिर्फ इस के साथ अपने एप्लिकेशन में कहीं से my_key उपयोग कर सकते हैं:

MyApp::Application.config.my_key 

+1

क्या आप एक लिनक्स सर्वर व्यापक वैश्विक चर बनाने का मतलब है? – Mellon

+1

'ENV' और' # env' दो अलग-अलग चीजें हैं। यूनिक्स पर्यावरण का प्रतिनिधित्व करने वाला वैश्विक स्थिरता 'एनएनवी' है। '# env' एक नियंत्रक विधि है जो वर्तमान रैक पर्यावरण को वापस लाती है। – Reactormonk

+0

मैं करता हूं :: टेस्टाबीसी = 'होला' और दृश्य से प्रिंट करने का प्रयास करें :: टेस्टाबीसी और यह कहता है कि –

14

एक वैकल्पिक दृष्टिकोण config/application.rb में config वस्तु पर एक कुंजी सेट इतना की तरह करने के लिए है इसके अलावा, माइक पेरहम ने एक समान वर्णन किया है, हालांकि in his blog post अधिक व्यापक दृष्टिकोण।

+0

क्या यह स्थिर नहीं है लेकिन परिवर्तनीय नहीं है? क्या इसे रन टाइम के दौरान किसी एप्लिकेशन में बदला जा सकता है? – Paul

+0

यह एक चर है और रनटाइम के दौरान बदला जा सकता है। –

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