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

您可以创建一个 getter 方法来获取 class_variable

def self.get_debug
  @@debug
end

但是,rails 提供了一个名为 cattr_accessor 的方法 http://apidock.com/rails/Class/cattr_accessor 这将允许您在类之外设置和获取类变量

IE Class1.debug = false

于 2012-07-03T13:46:58.847 回答