我使用rails控制台,我经常需要预加载一些ruby代码才能使用。
#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>
如何在控制台中访问我的'a'和'b'变量?
答案 0 :(得分:17)
加载文件时,文件加载后局部变量超出范围,这就是为什么a和b在加载文件的控制台中不可用的原因。
因为你把a和b视为常数,所以如何将它们大写如此
A = 1
B = 2
puts A+B
现在在您的控制台中,您应该可以执行以下操作
load 'myfile.rb'
A #=> 1
或者,您可以在myfile.rb中创建变量global($ a,$ b)
答案 1 :(得分:0)
首先,你应该使用irbrc。请阅读更多here,例如。
然后你可以在你的irbrc中定义一个方法来模拟你的变量:
def a
[1, 2, 4]
end
但我更喜欢将方法添加到特定的Ruby类中,如:
class Array
def self.toy(n=10,&block)
block_given? ? Array.new(n,&block) : Array.new(n) {|i| i+1}
end
end