警告——我没有亲自使用过你正在使用的宝石。以下建议基于查看他们的文档。
添加embedly
到您的 Gemfile
不要在命令行中添加它。将其添加到 Gemfile 会将其安装在您的应用程序范围内。(gem 指令与框架无关,这就是为什么它们不在 Gemfile 中显示它的原因)。
我不确定这个 gem 是否包含您需要的 JS 文件。假设以某种方式安装该 gem确实添加了一个 JS 文件,那 require 对我来说看起来不错(尽管我忘记了你的最后两个 require 是字符串是否是一个问题,并且根据我的经验,放置require_tree .
最后一个是常规的,以便你的应用程序- 特定的 JS 文件可以访问所有库)。如果有的话,它可能唯一重要的是它遵循这jquery
条线,因为 Embedly 的 JS可能依赖于一些 jQuery,这是一个非常常见的库。
以下行生成gem 给出的类的实例:Embedly::API
embedly_api = Embedly::API.new :user_agent => 'Mozilla/5.0 (compatible; mytestapp/1.0; my@email.com)'
该实例有一个oembed
方法,可以用一个:url
键输入一个哈希值,它可以使用它的值来生成可以打印到页面的 HTML。因此,例如,在定义了上述embedly_api
实例之后,您可以像这样使用它:
embedly_api.oembed(url: "someurl.com")
或者
embedly_api.oembed(url: ["someurl.com", "anotherurl.com"])
文档建议您可以设置url
为等于字符串或字符串数组。
这个方法返回一个基于 url 的对象数组,每个对象都有一些相关的方法,包括html
,它似乎打印出 iFrame 的 HTML,以及thumbnail
,它似乎打印出链接的缩略图。
你可以在 Rails 控制台中试试这个:
[1] ruby> embedly_api = Embedly::API.new :user_agent => 'Mozilla/5.0 (compatible; mytestapp/1.0; my@email.com)'
=> #<Embedly::API:0x00000102282e88
@api_version={:objectify=>"2"},
@endpoints=[:oembed, :objectify, :preview, :extract],
@headers={"User-Agent"=>"Mozilla/5.0 (compatible; mytestapp/1.0; my@email.com)"},
@hostname="http://api.embed.ly",
@key=nil,
@proxy=nil,
@secret=nil,
@timeout=180>
[2] ruby> embedly_api.oembed :url => 'http://www.youtube.com/watch?v=sPbJ4Z5D-n4&feature=topvideos'
=> [#<Embedly::EmbedlyObject provider_url="http://www.youtube.com/", description="Netherlands - Austria [09-02-2011] 1-0 WESLEY SNEIJDER", title="Netherlands - Austria [09-02-2011] 1-0 WESLEY SNEIJDER", url="http://www.youtube.com/watch?v=sPbJ4Z5D-n4", author_name="TranceAddict1989", height=480, thumbnail_width=480, width=854, html="<iframe class=\"embedly-embed\" src=\"//cdn.embedly.com/widgets/media.html?url=http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DsPbJ4Z5D-n4&src=http%3A%2F%2Fwww.youtube.com%2Fembed%2FsPbJ4Z5D-n4%3Ffeature%3Doembed&image=http%3A%2F%2Fi.ytimg.com%2Fvi%2FsPbJ4Z5D-n4%2Fhqdefault.jpg&type=text%2Fhtml&schema=youtube\" width=\"854\" height=\"480\" scrolling=\"no\" frameborder=\"0\" allowfullscreen></iframe>", author_url="http://www.youtube.com/user/TranceAddict1989", version="1.0", provider_name="YouTube", thumbnail_url="http://i.ytimg.com/vi/sPbJ4Z5D-n4/hqdefault.jpg", type="video", thumbnail_height=360>]
然后,您可以通过在控制器中定义来尝试在您的应用程序embedly_api
中使用它,并使用它从您的书签中生成与 url 相关的 iFrame/thumbnail HTML 字符串数组。将该数组设置为@
变量并循环遍历这些 iFrame/缩略图字符串并将它们作为 HTML 打印到页面上。
完成此操作后,您应该更好地了解 gem 到底在为您做什么,以及您可能希望如何自定义其行为。