2011-10-22 17 views
13

Raylar konsolunda çalışıyorum ve genellikle çalışmak için biraz ruby ​​kodu önceden yüklemem gerekiyor.Bu dosyada tanımlanan değişkenlere erişim ile rayları konsol dosyasına yükleyin

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

i ./script/console

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

Nasıl benim 'a' ve konsolda 'b' değişkenlere erişebilirsiniz ile benim konsol çalıştırmak?

cevap

15

Dosya yüklendikten sonra değişkenler kapsam dışına çıkar, bu nedenle yüklenen konsolda a ve b kullanılamaz. Eğer sabitler olarak a ve b tedavi olduğundan

nasıl takip

load 'myfile.rb' 
A #=> 1 

Alternatif Yapabileceğiniz yapmanız gerekir teselli sadece Şimdi öylesine

A = 1 
B = 2 
puts A+B 

gibi da aktifleştirilmesi konusunda myfile.rb global ($ a, $ b) değişkenleri

+0

Teşekkürler! Bu yardımcı oldu. –

+2

ayrıca bu dosyadaki var gibi @ a ve b'ye erişebilir ve bunları irb konsolunda kullanabilirsiniz :-) – FireDragon

0

Her şeyden önce, bir irbrc kullanmalısınız. Lütfen daha fazla here okuyun.

Sonra da değişkenleri alay etmek için irbrc bir metot tanımlayabiliriz:

def a 
[1, 2, 4] 
end 

fakat bunun belirli Ruby sınıflara yöntemleri eklemek tercih: Yerel bir dosyayı yüklediğinizde

class Array 
    def self.toy(n=10,&block) 
    block_given? ? Array.new(n,&block) : Array.new(n) {|i| i+1} 
    end 
end 
İlgili konular