1

我有一个带有 API 请求的控制器,其中显示了我所有的 Google 文档。

feed = client.get('http://docs.google.com/feeds/documents/private/full').to_xml

    feed.elements.each('entry') do |entry|
      puts 'title: ' + entry.elements['title'].text
      puts 'type: ' + entry.elements['category'].attribute('label').value
      puts 'updated: ' + entry.elements['updated'].text
      puts 'id: ' + entry.elements['id'].text

      # Extract the href value from each <atom:link>
      links = {}
      entry.elements.each('link') do |link|
        links[link.attribute('rel').value] = link.attribute('href').value
      end
      puts links.to_s

结尾

所以,我可以在控制台中看到结果,但如何让它们进入我的视图?

我尝试过这样的事情,但这不起作用(当然,我将控制器中的变量更改为访问器)

<% feed.elements.each('entry') 做 |entry| %> <% entry.elements['title'].text %> <% end %>

4

2 回答 2

0

首先,在您的控制器中,将 feed 设为实例变量。IE:应该是:

@feed = client.get.....代替feed = client.get....

如果这不能解决它......我不确定你的 API,但我怀疑你可能需要使用:

<% @feed.elements.each('entry') do |entry| %> <% entry['title'] %> <% end %>

注意:entry['title']代替entry.elements['title'].text

您当前的代码表明,提要的结构如下:

feed.elements[0].elements['attr'].text, 当它可能只是feed.elements[0]['attr']

那有意义吗?试试看,看看会发生什么。

如果这不起作用,只需将:debug(@feed)放在您的视图中,然后将其复制并粘贴到问题的末尾。这将帮助我们找出访问这些信息的正确方法。

于 2011-02-08T20:41:32.880 回答
0

问题解决了。因为我在控制器中使用“放置”来在控制台中显示提要的内容,所以我还必须为视图更改它。当然,puts 等于 <%= ... %>。

<ul>
    <% @feed.elements.each('entry') do |entry| %>
        <li><%= 'title: ' + entry.elements['title'].text %></li>
    <% end %>
</ul>
于 2011-02-13T22:25:41.823 回答