0

プログラムのすべてのファイルで自分の変数を使用しようとしています。これは私がやろうとしていることの例です。

 main.rb
 Class1
 def self.test1
 puts "class 1" if @@debug
  end
 end
 @@ debug = true

 class.test1
 class.test2

 class2.rb
 Class2
 def self.test2
 puts "test2" if @@debug
  end
 end

コミュニティにとって十分に明確であることを本当に願っています。

4

2 に答える 2

2

グローバル変数または定数が必要です。独自の変数を作成することもできますが、Ruby には便利なように組み込みの$DEBUGグローバル変数が付属しています。-dにオプションを指定するとruby$DEBUGになりtrue、それ以外の場合は になりますfalse

クラスが複数のファイルにある場合は、これを他のファイルを含むファイルに入れます。

DEBUG=$DEBUG

また、他のファイルではDEBUG、 ではなくデバッグに使用します$DEBUG

于 2012-07-03T13:46:34.490 に答える
1

class_variable を取得する getter メソッドを作成できます

def self.get_debug
  @@debug
end

ただし、レールは cattr_accessor と呼ばれるメソッドを提供します http://apidock.com/rails/Class/cattr_accessor これにより、クラス外のクラス変数を設定および取得できます

すなわち Class1.debug = false

于 2012-07-03T13:46:58.847 に答える