Я пытаюсь получить album.title (в методе display_album).Всякий раз, когда я запускаю код через терминал, он говорит неопределенный метод title для #.Я думаю, что я поставил все экземпляры правильно.Я не уверен, что я скучаю.
Я попытался проверить, правильно ли я помещаю экземпляры, а также отладку с помощью метода p, чтобы проверить, не работают ли переменные экземпляра во всем классе.
$genre = ['Null', 'Pop', 'Classic', 'Jazz', 'Rock']
class Album
attr_accessor :title, :artist, :genre, :tracks
def initialize(title, artist, genre, tracks)
@title = title
@artist = artist
@genre = genre
@tracks = tracks
end
end
def read_albums()
puts "write a file name"
afile = gets.chomp
file = File.new(afile, "r")
albums = Array.new()
if file
i =0
count = file.gets.to_i
while i<count
albums << read_album(file)
i +=1
end
file.close
end
albums
end
def read_album(file)
album_title = file.gets
album_artist = file.gets
album_genre = file.gets
album_tracks = read_tracks(file)
album = Album.new(album_title, album_artist, album_genre, album_tracks)
album
end
def display_albums(albums)
finished = false
begin
selection = read_integer_in_range("choose the number", 1, 3)
case selection
when 1
display_album(albums)
when 2
display_genres
when 3
finished = read_boolean 'Are you sure to exit ? (enter yes if yes)'
else
puts 'Please select again'
end
end
end
def display_album(albums)
puts "the album title is" + albums.title.to_s
end
def main_menu
finished = false
begin
selection = read_integer_in_range('please select the number between 1 and 5', 1, 5)
case selection
when 1
albums = read_albums
when 2
display_albums(albums)
when 3
play_album
when 4
update_album
when 5
finished = read_boolean 'Are you sure to exit ? (enter yes if yes)'
else
puts 'Please select again'
end
end until finished
end
main_menu
Я ожидаю получить заглавное имя "Coldplay Viva la Vida или Смерть и все его друзья".
Полученное сообщение об ошибке: music_player.rb: 103: в display_album': undefined method
title 'для # (NoMethodError)