Поиск, если значения существуют - PullRequest
0 голосов
/ 06 мая 2019

Моему приложению необходимо прочитать данные из файла, а затем пользователь может найти эти данные, чтобы проверить, существуют ли они.Файл читает идентификатор альбома, затем пользователь должен ввести этот идентификатор, чтобы получить к нему доступ

Текстовый файл

Marcus Hospin
Raw
3 - Genre Value
1 - ID 
Sag My Pants
sounds/01-Sag-My-Pants.wav
The Purge
sounds/06-The-Purge.wav
Ill Mind 8
sounds/20-Ill-Mind-8.wav

Код рубина

class Album
  attr_accessor :title, :artist, :genre, :id, :tracks

  def initialize (title, artist, genre, id)
    @title = title
    @artist = artist
    @genre = genre
    @id = id

  end
end

def read_album(music_file)
  album_artist = music_file.gets
  album_title = music_file.gets
  album_genre = music_file.gets
  album_id = music_file.gets
  album = Album.new(album_title, album_artist, album_genre, album_id)
  album
end

def main
album = read_album(music_file)
puts 'Enter the ID of the album you wish to play'
      search_string = gets.to_s
      album.map(&:id).include?(search_string) || -1
      if index != -1
        puts "Found, playing album " + album[index].id + " at " + index.to_s
      else
        puts "Entry not Found"
      end
end

main

Ожидаемый результат для программы: «Найдено, воспроизводится альбом 1 (ID) со значением 1 (индекс). Но фактический результат равен undefined method `map' for #<Album:0x0000000003357ca0> (NoMethodError)

».

1 Ответ

0 голосов
/ 06 мая 2019

map не определено, потому что вы вызываете его для одного объекта, а не для набора объектов.Вам нужно заполнить массив Album объектами, прежде чем вы сможете map поверх него.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...