2015-05-19 4 views
11

मैं रूबी पर रूबी में वैश्विक चर घोषित कैसे कर सकता हूं?मैं रूबी पर रूबी में वैश्विक चर घोषित कैसे कर सकता हूं?

मेरे नमूना कोड:

में

मेरी controller#application.rb:

def user_clicked() 
    @current_userid = params[:user_id] 
end 
इस लिंक के साथ मेरी layout#application.html.haml मैं साइडबार में

:

= link_to "John", user_clicked_path(:user_id => 1) 
= link_to "Doe", user_clicked_path(:user_id => 2) 
= link_to "View clicked user", view_user_path 

में मेरी views#view_user.html.haml:

%h2 @current_userid 

मैं एक वैश्विक चर घोषित करना चाहता हूं जो मेरे नियंत्रक को संशोधित कर सकता है और कहीं भी इसका उपयोग कर सकता है, जैसे नियंत्रक, विचार, आदि। उपर्युक्त केवल नमूना परिदृश्य है। यदि मैं जॉन या डो लिंक पर क्लिक करता हूं, तो यह नियंत्रक को user_id भेज देगा और जब मैं "क्लिक किए गए उपयोगकर्ता देखें" लिंक पर क्लिक करता हूं, तो यह अंतिम क्लिक किए गए लिंक को प्रदर्शित करेगा। यह या तो John=1 या Doe=2 है।

बेशक अगर मैं "क्लिक किए गए उपयोगकर्ता देखें" लिंक पर क्लिक करता हूं, तो यह nil प्रदर्शित करेगा।

+1

क्षमा करें, मुझे आपका प्रश्न समझ में नहीं आया। – Surya

+0

जांचें [यह] (http://stackoverflow.com/questions/12112765/how-to-reference-global-variables-and-class-variables) – Abhi

+0

हाय ... मेरे खराब व्याकरण के लिए खेद है^_^मैंने अपना संपादित किया प्रश्न^_^और नमूना परिदृश्य। मैं जो कहने की कोशिश कर रहा हूं वह है कि मैं एक वैश्विक चर चाहता हूं कि मैं कहीं भी पहुंच सकूं। उपर्युक्त उदाहरण की तरह, यदि मैंने जॉन या डो लिंक पर क्लिक किया है, तो यह नियंत्रक को user_id भेज देगा और जब मैं "क्लिक किए गए उपयोगकर्ता देखें" लिंक पर क्लिक करता हूं, तो यह अंतिम क्लिक किए गए लिंक को प्रदर्शित करेगा, यह या तो जॉन = 1 या डो = 2। अगर मैंने पहले "क्लिक किए गए उपयोगकर्ता को देखें" लिंक पर क्लिक किया है, तो यह शून्य प्रदर्शित करेगा।^_^कृपया मदद करें^_^ –

उत्तर

19

रूबी वैश्विक चर में $

$foo = 'bar' 

जो तुम शायद ही कभी a number of reasons के लिए इस्तेमाल किया देखने के साथ पहचानकर्ता लगाकर द्वारा घोषित कर रहे हैं। और यह वास्तव में वह नहीं है जिसे आप ढूंढ रहे हैं।

रूबी उदाहरण चर में @ साथ घोषणा की जाती है:

class DemoController 
    def index 
    @some_variable = "dlroW olleH" 
    @some_variable = backwards 
    end 
    private 
    def backwards 
    @some_variable.reverse 
    end 
end 

रेल स्वचालित रूप से दृश्य संदर्भ के लिए नियंत्रक के उदाहरण चर गुजरता है।

# /app/views/demos/index.html.haml 
%h1= @some_variable 

अनुमान लगाएं कि यह क्या आउटपुट करता है और मैं आपको एक कुकी दूंगा।

आपके उदाहरण में @global_variablecontroller#sample_1 के बाद शून्य नहीं है - अनुरोध controller#sample_2 के माध्यम से जाएगा।

def sample_2 
    @global_variable = "Helloword" 
end 
+0

हाय ... उत्तर के लिए धन्यवाद^_^मैंने ऊपर अपना प्रश्न संपादित किया^_^और नमूना परिदृश्य बदल दिया। मैं जो कहने की कोशिश कर रहा हूं वह है कि मैं एक वैश्विक चर चाहता हूं कि मैं कहीं भी पहुंच सकूं। अगर मैंने जॉन या डो लिंक पर क्लिक किया है, तो यह नियंत्रक को user_id भेज देगा और जब मैं "क्लिक किए गए उपयोगकर्ता देखें" लिंक पर क्लिक करता हूं, तो यह अंतिम क्लिक किए गए लिंक को प्रदर्शित करेगा, यह या तो जॉन = 1 या डो = 2 है। अगर मैंने पहले "क्लिक किए गए उपयोगकर्ता को देखें" लिंक पर क्लिक किया है, तो यह शून्य प्रदर्शित करेगा। मेरे खराब व्याकरण के लिए खेद है^_^ –

+0

मुझे लगता है कि आप जो खोज रहे हैं वह सत्र हो सकता है http://guides.rubyonrails.org/action_controller_overview।एचटीएमएल # सत्र – max

+0

इस सत्र के लिए धन्यवाद^_^... मैंने कोशिश की और मैं अब इसे हर जगह उपयोग कर रहा हूं ... सत्र [: global_variable] –

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