Я создаю текстовый музыкальный проигрыватель Program.
Внутри функции read_genre (), которая отображает списки доступных жанров (которые я определил 9 различных жанров внутри массива переменных $ genre_names instance вне пределовread_genre ()), и это побуждает пользователя выбрать жанр для альбома, который читает номер жанра, введенный пользователем.И тогда read_genre вызывается из read_album и распечатывается в функции print_album.
Проблема в том, что я получаю сообщение об ошибке "нет неявного преобразования nill в строку (TypeError)", строка 134, которая помещает "Genre is ' + album.genre
из функции print_album ().
$genre_names = ['Null','Pop', 'Classic', 'Jazz', 'Rock', 'KPop', 'Metal', 'Punk', 'Romance', 'Latin']
# Display the genre names in a
# numbered list and ask the user to select one
def read_genre()
length = $genre_names.length
index = 0
print $genre_names
while (index < length)
select_genre = read_integer_in_range("Select Genre: ", 0,9)
case select_genre
when 1
puts "#{index + 1} " + $genre_names[1]
break
when 2
puts "#{index + 2 } " + $genre_names[2]
break
when 3
puts "#{index + 3} " + $genre_names[3]
break
when 4
puts "#{index + 4} " + $genre_names[4]
break
when 5
puts "#{index + 5} " + $genre_names[5]
break
when 6
puts "#{index + 6} " + $genre_names[6]
break
when 7
puts "#{index + 7} " + $genre_names[7]
break
when 8
puts "#{index + 8} " + $genre_names[8]
break
when 9
puts "#{index + 9} " + $genre_names[9]
break
else
puts 'Please Select again'
break
end
index
end
end
def read_album
# Complete the missing code
album_title = read_string("Enter Title: ")
album_artist = read_string("Enter Artist name: ")
album_genre = read_genre()
tracks = [tracks]
album = Album.new(album_title, album_artist, album_genre, tracks)
album
end
def print_tracks tracks
# Complete the missing code
index = 0
while (index < tracks.length)
print_track(tracks[index])
index += 1
end
end