1

すべての Google ドキュメントを表示する API リクエストを含むコントローラーがあります。

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') do |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」を使用してフィードのコンテンツをコンソールに表示するため、ビューでもそれを変更する必要があります。もちろん、 puts は <%= ... %> と同じです。

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