Может кто-нибудь объяснить, почему self.foo= работает вне класса ‹‹ self, а foo= не работает внутри класса ‹‹ self.
class A
class << self
attr_accessor :foo
foo = 'foo'
end
end
p A.foo # => "nil"
class A
class << self
attr_accessor :foo
end
self.foo = 'foo'
end
p A.foo # => "foo"
Это не тот же вопрос, что и Когда использовать 'self' в Ruby
Чтобы было ясно, я не спрашиваю, когда использовать self. Я спрашиваю, почему я не могу установить переменную класса внутри блока «класс ‹‹ self», но могу вне его.