2016-07-21 2 views
7

मैं रेल 4.2.4 का उपयोग कर रहा हूँ। मैं मॉड्यूल के भीतर एक सहायक (निजी) विधि को कैसे परिभाषित करूं? मैं इस मॉड्यूल हैमैं अपने रेल मॉड्यूल में एक सहायक विधि को कैसे परिभाषित करूं?

module WebpageHelper 

    def get_url(url) 
    content = get_content(url) 
    .. 
    end 

    def get_content(url) 
    … 
    end 

    module_function :get_url 

end 

मैं सार्वजनिक रूप से सुलभ होने के लिए विधि "get_content" नहीं करना चाहती है, लेकिन इसके बाद के संस्करण कोड के साथ मैं त्रुटि

Error during processing: undefined method `get_content' for WebpageHelper:Module 

कैसे मैं ठीक से एक निजी सहायक परिभाषित करते हैं मिलता है मेरे मॉड्यूल में विधि?

उत्तर

1

मुझे लगता है कि सबसे अच्छा तरीका (और अधिकांशतः मौजूदा libs कैसे लिखे गए हैं) यह सभी मॉड्यूल के साथ मॉड्यूल के भीतर कक्षा बनाकर ऐसा करें, और मॉड्यूल सिर्फ एक सुविधाजनक तरीका प्रदान करता है।

यहां डॉक्स;

Private method

या जैसे कुछ अच्छा उदाहरण के लिए Here देखना class << self विकल्प।

+0

मुझे यहां एक कोड उदाहरण चाहिए, क्योंकि अगर मैं आपको सही पढ़ रहा हूं, तो आप कह रहे हैं कि सहायक विधि के साथ एक वर्ग बनाएं, जो इस विधि को सार्वजनिक रूप से सुलभ बना देगा, जो कि मैं बचने के लिए प्रयास कर रहा हूं। इस विधि का उपयोग केवल इस मॉड्यूल में ही किया जाएगा। –

+0

क्या आपने यह उदाहरण http://stackoverflow.com/a/424569/6266499 देखा है? – dodo121

+0

तो इस आंतरिक वर्ग की विधि केवल मॉड्यूल के भीतर ही पहुंचा जा सकता है? –

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

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