Twitter Search API在Rails页面上发布不需要的字符串

时间:2016-06-15 07:40:28

标签: ruby-on-rails ruby twitter

我正在使用twitter gem和搜索API将搜索到的推文嵌入到页面中,但出于某种原因,在页面底部,嵌入式推文的末尾,这样的内容将以纯文本形式发布:

#<Twitter::SearchResults:0x007f893bb766e8>

我无法弄清楚为什么会发布此消息。显然,出于演示原因,我不希望这个笨拙地贴在页面的末尾。

来自 home.html.erb

<ul>
    <% query = params["q"] %>
      <% if query != nil and query.chars.include? "#" %>
        <%= TwitterApi.search_twitter(query).each do |t| %>
          <% tweet = TwitterApi.embed(t)%>
          <%= raw(tweet.html) %>
        <% end %>
    <% end %>
</ul>

来自 twitter_api.rb

class TwitterApi
    def self.public_tweets(query)
      client.user_timeline(query, count: 1, exclude_replies: true, include_rts: false)
    end

    def self.embed(arg)
      client.oembed(arg)
    end

    def self.search_twitter(query)
      query += " -rt"
      client.search(query, count: 3)
    end 
end

1 个答案:

答案 0 :(得分:1)

=行中删除each符号:

而不是:

<%= TwitterApi.search_twitter(query).each do |t| %>

它应该是:

<% TwitterApi.search_twitter(query).each do |t| %>

<%=表示该行的结果将在页面上呈现。在each子句的情况下,结果是迭代的集合,在这种情况下它是TwitterApi.search_twitter(query)的结果,其类型为Twitter::SearchResults ...