Ruby on rails 如何查看节点集的每个单独项目?

Ruby on rails 如何查看节点集的每个单独项目?,ruby-on-rails,ruby,xpath,xml-parsing,nokogiri,Ruby On Rails,Ruby,Xpath,Xml Parsing,Nokogiri,我正在解析来自API的XML,并将它们显示在一个页面上,尽管我已将它们分页为每页30页 我想通过使用link\u to方法分别查看每个属性,然后更新属性,这些属性随后可以以XML格式发送回API。但我没有做的是保存到模型,只是显示。我可以将返回的结果视为对象吗 这是XML: <entry> <id>xxx</id> <updated>xxx</updated> <category scheme="xxx" term="xxx

我正在解析来自API的XML,并将它们显示在一个页面上,尽管我已将它们分页为每页30页

我想通过使用
link\u to
方法分别查看每个属性,然后更新属性,这些属性随后可以以XML格式发送回API。但我没有做的是保存到模型,只是显示。我可以将返回的结果视为对象吗

这是XML:

<entry>
<id>xxx</id>
<updated>xxx</updated> 
<category  scheme="xxx"  term="xxx"/>
<title type="text">xxx</title>
<link rel="xxx" type="xxx"    href="xxx"/> 
<link rel="xxx"/>     
<link rel="xx" type="xxx" href="xxx"/> <link rel="xx" type="axx" href="xxx"/> 
<gd:email rel="xxx" address="xxx" primary="xx"/> 
</entry>
这是
getcontact
方法:

doc = Nokogiri::XML.parse(open(url))
doc.xpath('//xmlns:feed/xmlns:entry[xmlns:title[node()]]')
这是路线:

match 'contacts/xmlns:title' => 'contacts#show'
“所有联系人”视图:

<% @mycontacts.each do |c| %>
Name: <%= c.xpath('xmlns:title').text %>  
Email: <%= c.xpath('gd:email/@address').text %> 
<%= link_to "Update Contact", contact_path(c.xpath('xmlns:title').text) %></p> 

<% end %>

姓名:
电邮:

显示视图:

<%= @contact.xpath('xmlns:title') %>
<%= @contact.xpath('gd:email/@address') %>

当我单击链接查看个人联系人时,会收到一条错误消息:

undefined method `xpath' for #<Enumerator:0x3cc6570>
的未定义方法“xpath”#

编辑:


将所有内容保存到模型中,在应用程序中进行更新,然后转换为XML并将其发送回是否更好?这似乎有点冗长,但这是最佳实践吗?

是的,我将创建一个封装API和检索方法的模型。另外,我会使用专门为这个用例设计的。它将自动执行与XML之间的转换。(虽然如果这是一个RSS提要,我可能会使用一个)


这种分离不会“冗长”,事实上它会更干净、更高效,因为您可以缓存,甚至只在模型中最小化所需的获取量。

感谢您的回答,我认为有一种方法可以动态更改XML的细节,但您是对的,在模型中获取它,它更干净。我会和HTTParty谈这个案子的
undefined method `xpath' for #<Enumerator:0x3cc6570>