如何从类中访问模块中的变量

时间:2015-01-15 16:09:43

标签: ruby

非常感谢某人的帮助。

我遇到以下情况:

module Tester
  def testing
    x = "This works"
  end
end


class Dog 
  include Tester

  puts  x
end

当我尝试从类Dog(puts x)中访问变量时,出现undefined variable x错误。谁能告诉我如何才能访问它?

1 个答案:

答案 0 :(得分:0)

Ruby支持模块中的类变量,因此您可以为模块定义任何类变量,如下所示:

Module Tester
  @@x = 'default' 
  def testing
      @@x = "This works"
  end

  def get_x
    @@x
  end
end


class Dog
  include Tester
  puts  @@x # get_x
end

#=> default

如果您希望显示“此作品”文字,则需要先调用testing方法:

Tester.testing
puts Tester.get_x #=> "This works"