5

Railsコンソールのすべての変数をクリアするために使用されるコマンドを誰か教えてもらえますか?

例えば

1.9.1 :001 > permissions = {:show => true}
 => {:show=>true} 
1.9.1 :001 > foo = "bar"
 => "bar"

Railsコンソール自体を再起動せずに、すべての変数をnilにリセットできるコマンドが必要です。

アドバイスをいただければ幸いです。

4

2 に答える 2

12
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
于 2012-11-24T11:44:17.357 に答える
-3

1 つのことを入力する

irb 'another'

次にctrl+lを押します

変数の値を確認してください。できます。

于 2012-11-24T11:53:01.893 に答える