任何人都可以告诉我使用什么命令来清除rails控制台中的所有变量吗?
例如
1.9.1 :001 > permissions = {:show => true}
=> {:show=>true}
1.9.1 :001 > foo = "bar"
=> "bar"
我需要一个命令,可以在不重新启动 rails 控制台本身的情况下将所有变量重置为 nil。
任何建议将不胜感激。
任何人都可以告诉我使用什么命令来清除rails控制台中的所有变量吗?
例如
1.9.1 :001 > permissions = {:show => true}
=> {:show=>true}
1.9.1 :001 > foo = "bar"
=> "bar"
我需要一个命令,可以在不重新启动 rails 控制台本身的情况下将所有变量重置为 nil。
任何建议将不胜感激。
local_variables.each { |e| eval("#{e} = nil") }
local_variables
返回当前范围内所有局部变量的符号列表
a, b = 5, 10
local_variables # => [:b, :a]
使用each
您可以遍历此列表eval
以将其值分配给nil
.
instance_variables
你也可以用和 做同样的事情global_variables
。例如
(local_variables + instance_variables).each { |e| eval("#{e} = nil") }
顺便说一句,如果您要多次使用它,在~/.irbrc
文件中定义这样的方法以使其对所有 irb 会话都可访问可能会有所帮助(未在 rails 控制台中对其进行测试)。
class Binding
def clear
eval %q{ local_variables.each { |e| eval("#{e} = nil") } }
end
end
然后,在irb
会话内部
a = 5
binding.clear
a # => nil
做一件事,输入
irb 'another'
然后按 ctrl+l
现在检查变量的值。有用。