0

在 Rails 中,我通常会将记录保存到模型中,然后如果我想显示单个记录,我会通过其 id 找到该记录,如下所示

 def show
 @post = Post.find(params[:id])
 end

然后在我看来,我可以像这样显示该记录中的一个属性

<%= @post.title %>

我想要实现的是显示从 XML 文档返回的数据的各个实例,所以如果 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="xxx0gmail.com/b6ea0e8ddbc4e5"/>     
 <link rel="xx" type="xxx" href="xxx"/> <link rel="xx" type="axx" href="xxx"/> 
 <gd:email rel="xxx" address="xxx" primary="xx"/> 
</entry>

如果我点击“查看联系人”的链接,我怎么能有一个动作,我怎么能显示那个特定的记录?

目前我像这样查看所有返回的记录

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

由 Nokogiri 解析

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

1 回答 1

1

你可以通过使用更多的 xpath 来做到这一点。

doc.xpath("//entry[id='xxx']")

这将返回具有该特定 ID 的所有条目(在本例中为 xxx)

您可以通过将信息传递给 link_to 方法在 url 中“嵌入”信息

<%= link_to "show entry", :id => "xxx" %>

它只会在参数哈希中

params[:id]
=> 'xxx'
于 2013-03-31T21:31:03.670 回答