Вы никогда не инициализируете @persons
чем-либо, кроме nil.Простое исправление:
class MyPersons < Persons
reset!
add_person 'Dr.', 'Bob'
add_person 'Mr.', 'Jones'
end
Причина, по которой ваш вызов reset!
не работает, заключается в том, что MyPersons
и Persons
не используют одну и ту же переменную @persons
.
Вы можете использовать @@persons
вместо того, чтобы разделить переменную.Ваш пример будет выглядеть так:
class Persons
@@persons = []
class << self
def reset!
@@persons = []
end
def add_person title, name
@@persons << { title: title, name: name }
end
end
end
class MyPersons < Persons
add_person 'Dr.', 'Bob'
add_person 'Mr.', 'Jones'
end