2011-03-07 16 views
10

मैं अपने ऐप की lib निर्देशिका में स्थित मॉड्यूल में किसी फ़ंक्शन तक पहुंचने का प्रयास कर रहा हूं। (Lib/search.rb)lib निर्देशिका में मॉड्यूल तक पहुंच (रेल पर रूबी)

मैं वास्तव में से काम की तलाश करने जिप कोड प्राप्त करने के लिए कोशिश कर रहा हूँ: http://joshhuckabee.com/simple-zip-code-perimeter-search-rails

lib/search.rb

module Search 
    def zip_code_perimeter_search(zip, radius) 
    #code 
    end 
end 

मैं zip_code_perimeter_search कॉल करने के लिए कोशिश कर रहा हूँ रेल कंसोल से या मेरे नियंत्रक से कार्य, दोनों बार मुझे अपरिभाषित विधि मिलती है। कोई विचार?

उत्तर

15

अपने कंसोल/नियंत्रक में:

include Search 
zip_code_perimeter_search(zip, radius) 

मामले में यह रेल 3 में नहीं स्वतः लोड होने, अपने config/application.rb फ़ाइल में, आप ऐसा कर सकते है:

# Custom directories with classes and modules you want to be autoloadable. 
config.autoload_paths += Dir["#{config.root}/lib/**/"] 
+1

धन्यवाद, मैं भी एक lib/खोज के लिए आवश्यकता होती है करना था। मुझे लगता है कि रेल 3 lib को स्वत: लोड नहीं करता है। –

+0

मैंने जवाब संपादित किया है। यदि आप अपनी application.rb फ़ाइल में लोड निर्देशिका सेटिंग कॉन्फ़िगर करते हैं, तो आपको फ़ाइल की 'आवश्यकता' की आवश्यकता नहीं होगी। – Shreyas

+0

+1 बहुत बहुत धन्यवाद! – ecoologic

2

मॉड्यूल विधि को कॉल करने के लिए इसे सीधे कक्षा में शामिल करें और फिर इसे क्लास इंस्टेंस पर कॉल करें।

Class call_module_method 
    include Search 
end 

अब

call_module_method.new.zip_code_perimeter_search(zip, radius) 

विधि के अंदर कोड का मूल्यांकन करेंगे zip_code_perimeter_search(zip, radius)

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