类问题的attr_accessor

nev*_*ame 0 ruby class-variables

我认为可以在这样的特征类中定义attr_accessor方法:

class IOS
  @@modules_paths = "hello"

  class << self
    attr_accessor :modules_paths
  end

end

puts IOS::modules_paths
Run Code Online (Sandbox Code Playgroud)

但这没有任何回报.

有办法吗?

Mat*_*chu 6

attr_accessor您添加到类使用类级别的实例变量,而不是类变量.在某些情况下,这实际上可能更有帮助,因为当继承进入图片时类变量可能变得荒谬.

class IOS
  @modules_paths = "hello"

  class << self
    attr_accessor :modules_paths
  end
end

puts IOS::modules_paths # outputs "hello"
Run Code Online (Sandbox Code Playgroud)

如果您真的需要它来使用类变量,您可以手动定义方法,引入ActiveSupport并使用cattr_accessor,或者只复制相关的ActiveSupport方法.