2011-10-22 22 views
13

मैं रेल कंसोल के साथ काम करता हूं और अक्सर मुझे काम करने के लिए कुछ रूबी कोड को प्रीलोड करना होगा।इस फ़ाइल में परिभाषित चर के उपयोग के साथ रेल कंसोल में फ़ाइल लोड करें

#file that i want to load in rails console 
#my_file.rb 
a = 1 
b = 2 
puts a + b 

जब मैं ./script/console

rails-console :001 > load 'my_file.rb' 
3 
=> [] 
rails-console :002 > a 
NameError: undefined local variable or method 'a' for #<Object:123445> 

मैं कैसे मेरी 'एक' और कंसोल में 'बी' चर के लिए उपयोग हो सकता है के साथ मेरे कंसोल चला सकता हूँ?

उत्तर

15

जब आप किसी फ़ाइल स्थानीय लोड फाइल लोड होने के बाद चर के दायरे से बाहर निकलते हैं, यही वजह है कि ए और बी कंसोल में अनुपलब्ध होगा जो इसे लोड करता है।

जब से तुम स्थिरांक के रूप में ए और बी के इलाज कर रहे हैं कि कैसे सिर्फ उन्हें इतना

A = 1 
B = 2 
puts A+B 

की तरह बड़े अक्षरों में अब आप को सांत्वना तुम क्या करने में सक्षम होना चाहिए निम्नलिखित

load 'myfile.rb' 
A #=> 1 

वैकल्पिक रूप से आप कर सकते हैं के बारे में myfile.rb ग्लोबल में चर ($ ए, $ बी)

+0

धन्यवाद! यह मदद करता है। –

+2

आप इस फ़ाइल में @a और @b जैसे वर्रों तक पहुंच सकते हैं और उन्हें irb कंसोल में उपयोग कर सकते हैं :-) – FireDragon

0

सबसे पहले, आपको एक irbrc का उपयोग करना चाहिए। उदाहरण के लिए कृपया here पढ़ें।

तो फिर आप अपने चर उपहास करने के लिए अपने irbrc में एक विधि निर्धारित कर सकते हैं:

def a 
[1, 2, 4] 
end 

लेकिन मैं जैसे विशिष्ट रूबी वर्गों के लिए तरीकों को जोड़ने के लिए पसंद करते हैं:

class Array 
    def self.toy(n=10,&block) 
    block_given? ? Array.new(n,&block) : Array.new(n) {|i| i+1} 
    end 
end 
संबंधित मुद्दे