任何正文都可以告诉我用什么命令清除rails控制台中的所有变量?
e.g。
1.9.1 :001 > permissions = {:show => true}
=> {:show=>true}
1.9.1 :001 > foo = "bar"
=> "bar"
我需要一个命令,可以将所有变量重置为nil而无需重启rails console本身。
非常感谢任何建议。
答案 0 :(得分:7)
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
答案 1 :(得分:-2)
做一件事,输入
irb 'another'
然后按ctrl + l
现在检查变量的值。 它有效。