Проблема здесь в том, что вы пытаетесь использовать сеттеры непосредственно в методе initialize
, но Ruby интерпретирует это как создание локальных переменных, а не вызов сеттеров для self
.
def initialize
hooray = []
name = "Whammy"
end
Вы можете обойти это одним из двух способов; установить атрибуты напрямую, например @attribute
:
def initialize
@hooray = []
@name = "Whammy"
end
Или, если вы действительно хотите пройти через сеттеры (например, если у вас есть собственные сеттеры, которые делают что-то интересное), сделайте это явно с помощью self.setter
:
def initialize
self.hooray = []
self.name = "Whammy"
end