Я не хочу устанавливать переменную класса извне (через attr_accessor), а затем обращаться к ней из одного из своих объектов.Я использую ruby 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.service_id.Может кто-нибудь объяснить, почему это происходит?