Ruby (RoR) XML для хеширования и последующего отображения в представлениях

У меня есть XML на сервере (http://server.com/my.xml). Вот пример:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE current PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<current>
  <song>Bruce - Inside The Machine</song>
  <song>02 Duel of the Fates 1</song>
</current>

В приложении Rails я делаю:

response = open("http://server.com/my.xml").read
@sngs = Hash.from_xml(response)

Теперь, в Views, я хочу поместить каждое значение «song» в тег «p», например, но не по одному. Я должен поставить, например, точное первое или второе.

Как это можно сделать?

(Большое большое спасибо!)


person There Are Four Lights    schedule 05.11.2009    source источник


Ответы (1)


Hash.from_xml создаст хэш вида:

{"current" => {"song" => ["Bruce - Inside The Machine", "02 Duel Of the Fates 1"]}}

Я не совсем уверен, что вы хотите отобразить, но вы можете получить доступ к отдельным песням, используя:

@sngs["current"]["song"][0]

Например, если вы хотите отобразить все песни внутри тегов p, вы можете сделать:

<%- @sngs["current"]["song"].each do |song| %>
  <p><%= song %></p>
<%- end %>
person Greg Campbell    schedule 05.11.2009
comment
Спасибо! Это именно то, что мне нужно! Спасибо, Грег! - person There Are Four Lights; 06.11.2009