Как получить ArtistID из массива в рельсах и перенаправить с помощью ArtistID в качестве параметра - PullRequest
0 голосов
/ 05 декабря 2018

Я новичок в rails и создаю тестовое приложение, но у меня возникли некоторые проблемы с получением ключа / значения из массива.

Я хочу найти исполнителя по ArtistName.Как только совпадение найдено, я хочу перейти на био-страницу, основанную на ArtistID.Поиск по названию работает, как и ожидалось, но я не могу затем перенаправить с помощью artistID.Вот мой код для ArtistID.

@artists = ["artists": {"artistName": "Nirvana", "artistID": "0001", "album": "Nevermind"}, {"artistName": "Pearl Jam", "artistID": "0201", "album": "Ten"}, {"artistName": "Alice In Chains", "artistID": "1192", "format": "Sap"}}]

@artists.each do |item|
 @artistID = item[:artistID]
end

Результатом @artistID всегда является последний artistID в массиве.Я также пробовал это

@artistID = Array.new
@artists.each do |item|
 @id = Hash.new
 @id = item[:artistID]
@artistID << @id
end

Это затем возвращает все ArtistID.Может ли кто-нибудь помочь мне получить правильный ArtistID для художника?

1 Ответ

0 голосов
/ 05 декабря 2018

Эта первая строка не является допустимым массивом, также вы не проводите никаких сравнений, чтобы найти идентификатор.В первом случае вы присваиваете переменную @artistID для каждого artistID, что в итоге оставляет вам только последний.Другой пример, вы копируете все идентификаторы в массив.Взгляните на это:

artists = [
  {"artistName": "Nirvana", "artistID": "0001", "album": "Nevermind"},
  {"artistName": "Pearl Jam", "artistID": "0201", "album": "Ten"},
  {"artistName": "Alice In Chains", "artistID": "1192", "format": "Sap"}
]

found_artist = artists.find do |artist|
  artist[:artistName] == "Nirvana"
end

artistID = found_artist[:artistID]
puts artistID

Это печатает "0001" для меня.

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