这可能是一个非常简单的问题,但我不知道如何呈现嵌入的tweet。
为了简单起见,这是我的控制器:
class TweetsController < ApplicationController
def index
@tweet = twitter_client.oembed('527501479142109184')
end
end
在视图中,如果我只做以下操作,它只显示对象:
<%= @tweet %>
即#<Twitter::OEmbed:0x007fb878abc5d8>
在检查时,这给出:
#<Twitter::OEmbed:0x007fb875cacd28 @attrs={:cache_age=>"3153600000", :url=>"https://twitter.com/HuayuanSong/statuses/527501479142109184", :height=>nil, :provider_url=>"https://twitter.com", :provider_name=>"Twitter", :author_name=>"Huayuan Song", :version=>"1.0", :author_url=>"https://twitter.com/HuayuanSong", :type=>"rich", :html=>"<blockquote class="twitter-tweet"><p>Jeg kunne lide en video på <a href="https://twitter.com/YouTube">@YouTube</a> <a href="http://t.co/hhhTvyJA6y">http://t.co/hhhTvyJA6y</a> Obama: U.S. leading the way against Ebola spread</p>— Huayuan Song (@HuayuanSong) <a href="https://twitter.com/HuayuanSong/status/527501479142109184">October 29, 2014</a></blockquote>n<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>", :width=>550}>
显然,这非常简单,我只是把它作为概念验证类型的东西。有人能解释一下我是如何从拥有这个对象到能够显示实际嵌入的推特的吗?
感谢
简单地调用@tweet
只会引用对象。为了显示您想要调用的推文:
<%= raw(@tweet.html) %>
此外,来自Twitter的文档:
返回的HTML片段将自动识别为当Twitter的小部件JavaScript包含在页面。
Javascript片段如下所示:
<script>
window.twttr = (function (d, s, id) {
var t, js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) return;
js = d.createElement(s); js.id = id;
js.src= "https://platform.twitter.com/widgets.js";
fjs.parentNode.insertBefore(js, fjs);
return window.twttr || (t = { _e: [], ready: function (f) { t._e.push(f) } });
}(document, "script", "twitter-wjs"));
</script>