Ваша проблема в том, что, пока вы используете переменную экземпляра @number
, вызываете super number
(это не то, что вам нужно, так как это вызывает версию суперкласса любого метода, в котором вы находитесь, передавая number
как аргумент) и puts number
найдите метод number
. Если вы действительно хотите просто посмотреть переменную экземпляра, вам просто нужно @number
; если вы хотите определить такой метод, поместите в свой класс одну из следующих строк:
class A
attr_accessor :number # Define reader (number) and writer (number=)
attr_reader :number # Define only a reader
attr_writer :number # Define only a writer; won't be useful here
# ...
end
И, как сказал Эд Свангрен , вы должны очистить A
: инициализировать переменные в initialize
, убедиться, что вы определили все перед использованием и т. Д.
Редактировать 1: Исправлено описание поведения super
.