Ruby Hash: невозможно преобразовать строку в целое число - PullRequest
4 голосов
/ 18 ноября 2011

Я новичок в Ruby, и у меня возникли некоторые проблемы с хэшами.

Мне вернули XML из API YouTube, который я преобразовал в хэш.Вот хэш, возвращенный функцией Hash.from_xml (): http://pastebin.com/9xxE6iXU

Я пытаюсь извлечь определенные элементы из хеша для каждого результата, такие как заголовок, ссылка, автор и т. Д. Всякий раз, когда я пытаюсьцикл через хэш или захватить определенный элемент, я получаю сообщение об ошибке «невозможно преобразовать строку в целое число».

Вот код, который я использую для цикла:

@data["feed"]["entry"]["title"].each do  |key, value|
    "<p>"+key+" "+value+"</p>"
end

Я также пытался получить определенные элементы, такие как @data ["feed"] ["entry"] ["title"] [0].

Как пройти по хешу и получить определенные элементы?

1 Ответ

5 голосов
/ 18 ноября 2011

Это происходит потому, что @data["feed"]["entry"] - это массив хэшей:

puts @data["feed"]["entry"].class  # => Array

Каждый элемент-хэш внутри этого массива имеет значения "id", "category", "title" и т. Д.

Для захвата каждого заголовка попробуйте использовать следующий фрагмент:

@data["feed"]["entry"].each do |entry|
  puts entry["title"]
end
# => "TABE test adult basic education"
     "WhatCollegesHopeYouWon'tFindOutAboutACTSATTestPrep..."
     ....
...