attr_accessor
, добавляемый в класс, использует переменные экземпляра уровня класса, а не переменные класса.На самом деле это может быть более полезным в некоторых случаях, так как переменные класса могут стать нелепыми, когда наследование входит в картину.
class IOS
@modules_paths = "hello"
class << self
attr_accessor :modules_paths
end
end
puts IOS::modules_paths # outputs "hello"
Если вам действительно нужно использовать переменные класса, вы можете определить методы вручную, извлекитеActiveSupport и используйте cattr_accessor
, или просто скопируйте соответствующие методы ActiveSupport .