Во-первых, этот код даже не запускается: class
в строке 1 необходимо записать строчной буквой c, а запятая после последнего элемента в выражении (строка attr_reader
) не может быть , Я не получаю NoMethodError
после исправления ошибок и запуска Song.new
или Song#play
или Song#to_s
.
В любом случае, вы всегда получите это NoMethodError
, когда попытаетесь добавить что-нибудь к значению nil
:
>> nil + 1
NoMethodError: undefined method `+' for nil:NilClass
from (irb):1
>> nil + nil
NoMethodError: undefined method `+' for nil:NilClass
from (irb):2
>> # @foo is not defined, so it will default to nil
?> @foo + 2
NoMethodError: undefined method `+' for nil:NilClass
from (irb):4
Так что вы можете пытаться добавить что-то в неинициализированную переменную экземпляра ... или это может быть что угодно. Вам всегда нужно опубликовать полный минимальный код, чтобы дублировать ошибку, если вы хотите, чтобы вам помогли правильно.