2011-10-22 14 views
13

Io lavoro con la console di rails e spesso ho bisogno di precaricare un po 'di codice ruby ​​con cui lavorare.Carica la console file su rotaie con accesso alle variabili definite in questo file

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

Quando eseguo la mia console con ./script/console

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

Come posso ottenere l'accesso al mio 'a' e 'b' variabili nella console?

risposta

15

Quando si carica un file locale le variabili escono dall'ambito dopo che il file è stato caricato, motivo per cui a e b non saranno disponibili nella console che lo carica.

Dal momento che si sta trattando a e b come costanti come circa semplicemente sfruttando in questo modo

A = 1 
B = 2 
puts A+B 

Ora in voi consoli si dovrebbe essere in grado di effettuare le seguenti operazioni

load 'myfile.rb' 
A #=> 1 

In alternativa si potrebbe fare le variabili in myfile.rb globale ($ a, $ b)

+0

Grazie! Ha aiutato. –

+2

puoi anche accedere a vars come @a e @b in questo file e usarli nella console irb :-) – FireDragon

0

Prima di tutto, è necessario utilizzare un irbrc. Si prega di leggere più here per esempio.

Poi si potrebbe definire un metodo nella irbrc prendere in giro le variabili:

def a 
[1, 2, 4] 
end 

ma preferisco aggiungere metodi alle classi specifiche di Ruby come:

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