我正在使用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
答案 0 :(得分:1)
从=
行中删除each
符号:
而不是:
<%= TwitterApi.search_twitter(query).each do |t| %>
它应该是:
<% TwitterApi.search_twitter(query).each do |t| %>
<%=
表示该行的结果将在页面上呈现。在each
子句的情况下,结果是迭代的集合,在这种情况下它是TwitterApi.search_twitter(query)
的结果,其类型为Twitter::SearchResults
...