Sar*_*wan 4 ruby-on-rails rails-console
任何机构都能告诉我用什么命令来清除rails控制台中的所有变量?
例如
1.9.1 :001 > permissions = {:show => true}
=> {:show=>true}
1.9.1 :001 > foo = "bar"
=> "bar"
Run Code Online (Sandbox Code Playgroud)
我需要一个命令,可以将所有变量重置为nil而无需重启rails console本身.
任何建议将非常感谢.
local_variables.each { |e| eval("#{e} = nil") }
Run Code Online (Sandbox Code Playgroud)
local_variables
返回当前作用域中所有局部变量的符号列表
a, b = 5, 10
local_variables # => [:b, :a]
Run Code Online (Sandbox Code Playgroud)
使用each
您可以遍历此列表,用于eval
将其值分配给nil
.
你也可以用instance_variables
和 做同样的事情global_variables
.例如
(local_variables + instance_variables).each { |e| eval("#{e} = nil") }
Run Code Online (Sandbox Code Playgroud)
顺便说一句,如果您要多次使用它,在~/.irbrc
文件中定义这样的方法以使其可以访问所有irb会话(没有在rails控制台中测试)可能会有所帮助.
class Binding
def clear
eval %q{ local_variables.each { |e| eval("#{e} = nil") } }
end
end
Run Code Online (Sandbox Code Playgroud)
然后,内部irb
会话
a = 5
binding.clear
a # => nil
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2599 次 |
最近记录: |