我使用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’变量?
发布于 2011-10-22 22:52:12
当您加载文件时,本地变量在文件加载后会超出作用域,这就是a和b在加载它的控制台中不可用的原因。
由于您将a和b视为常量,那么将它们大写如下如何?
A = 1
B = 2
puts A+B现在,在您的控制台中,您应该能够执行以下操作
load 'myfile.rb'
A #=> 1或者,您可以将myfile.rb中的变量设为全局变量($a、$b)
发布于 2011-10-22 22:43:19
首先,你应该使用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 https://stackoverflow.com/questions/7860284
复制相似问题