我不想从外部(通过 attr_accessor)设置一个类的类变量,然后从它的一个对象内部访问它。我正在使用红宝石 1.9.2。这是我的代码:
class Service
def initialize(id)
@my_id = id
end
class << self
attr_accessor :shared_id
end
def system_id
@my_id + @@shared_id
end
end
如果我设置Service.shared_id = "A2"
,然后调用Service.new("A").system_id
,这不会返回“AA2”。它显示以下错误:
服务中未初始化的类变量@@shared_id
这种行为就像我没有设置 Service.service_id 一样。有人可以解释为什么会这样吗?