2013-05-30 8 views
6

मैं रुबी 1.8 के साथ काम कर रहा हूं और मेरे पास स्क्रिप्ट है जिसे मैं कॉल करना चाहता हूं लेकिन यह एक मूल फ़ोल्डर में है।मूल निर्देशिका से लोड फ़ाइल

maindir/ 
neededscript.rb 
    subdir/ 
    subdir2/ 
     myscript.rb 

मैं myscript.rb अंदर से neededscript.rb कैसे की आवश्यकता होती है सकते हैं: नीचे संरचना है?

उत्तर

5

की आवश्यकता होती है यह है कि मैं क्या बजाय किया है है:

File.expand_path("../../neededsript.rb",File.dirname(__FILE__)) 
6

रूबी> = 1.9 में आप आप एक फ़ाइल है कि require_relative बयान युक्त फ़ाइल के सापेक्ष है लोड करने के लिए अनुमति देकर require_relative विधि

require_relative निर्मित विधि की आवश्यकता होती है पूरक उपयोग कर सकते हैं।

require_relative '../../neededscript.rb' 
+0

देर से टिप्पणी के लिए खेद है, लेकिन जैसा कि मैंने उल्लेख किया है रूबी 1.8। * का उपयोग कर रहा हूं। – zulq

+0

आह कोई चिंता नहीं। बस संदर्भ के लिए, मैं बताउंगा कि जब मैंने उत्तर दिया था तो संस्करण प्रश्न में नहीं था :) लेकिन बाद में संपादित किया गया था। संस्करण ~ 1.8 के लिए अन्य 2 उत्तरों में से कोई भी अच्छा है। – fullybaked

5

आप भी इन लाइनों को जोड़कर माणिक libs पथ के लिए पथ में जोड़ सकते हैं करने से पहले myscript.rb को

binpath = File.dirname(__FILE__) 
$:.unshift File.expand_path(File.join(binpath, "..")) 
संबंधित मुद्दे