ruby-on-rails-3 - application.html.erb 中的 Facebook OG 元标记

标签 ruby-on-rails-3 facebook-opengraph

在我的 rails 应用程序中,我想将 FB OG 元标记与用户当前所在的页面动态连接。我觉得这应该很简单,但不能让它正常工作。

例如,我有“创意”页面,上面有创意标题和创意描述。

目前,在我的 Application.html.erb 文件中,我有这个(并且得到一个 NoMethodError 的标题):

<meta property="og:title" content= <%= "#{@idea.title.titleize}" %>/>
<meta property="og:url" content= <%= "http://myurl.com/ideas/#{@idea.id}" %>/>
<meta property="og:description" content= <%= "#{@idea.short_description}" %>/>

我的语法有问题吗?随着这些实例变量的可用性?我不确定我是否完全理解这是如何工作的。谢谢!

最佳答案

是的,正如菜鸟所说,将内容声明放在引号内。

<meta property="og:description" content= "<%= @idea.short_description %>" />

为了使这些元标记在 Rails 中动态化,人们首先开始使用 Ryan Bates 在 pretty page title railscast 中描述的漂亮页面标题方法。

然而,我刚刚发现了这个看起来非常有前途的元标记 gem :meta-tags

使用 gem,管理任何元标记,使它们动态且对 SEO 友好。示例:

set_meta_tags :title => 'Member Login'
# <title>Some Page Title</title>

一次轻松设置所有 facebook:og 标签:

  set_meta_tags :og => {
                  :title    => 'The Rock',
                  :type     => 'video.movie',
                  :url      => 'http://www.imdb.com/title/tt0117500/',
                  :image    => 'http://ia.media-imdb.com/rock.jpg',
                  :video    => {
                    :director => 'http://www.imdb.com/name/nm0000881/',
                    :writer   => ['http://www.imdb.com/name/nm0918711/', 'http://www.imdb.com/name/nm0177018/']
                  }
                }

当您调用 <%=display_meta_tags%> 时,上面的代码会输出以下 html :

<meta property="og:title" content="The Rock"/> <meta property="og:type" content="video.movie"/> <meta property="og:url" content="http://www.imdb.com/title/tt0117500/"/> <meta property="og:image" content="http://ia.media-imdb.com/rock.jpg"/> <meta property="og:video:director" content="http://www.imdb.com/name/nm0000881/"/> <meta property="og:video:writer" content="http://www.imdb.com/name/nm0918711/"/> <meta property="og:video:writer" content="http://www.imdb.com/name/nm0177018/"/>

源代码和 github 存储库中有更多示例。最后一个标签集优先,所以如果你在布局中设置一个,然后在页面中设置另一个,看起来页面中的那个会优先。

如果您使用它,请确保您拥有 <%= display_meta_tags %>在您的布局页面中,即 application.html.erb .

关于ruby-on-rails-3 - application.html.erb 中的 Facebook OG 元标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11564850/

相关文章:

ruby-on-rails-3 - Assets 管道中是否有 "Rails Way"包含 jQuery 插件?

php - Facebook 评论随机图片

android - 无需存储元数据的网站即可实现开放图谱的可能性,开放图谱元数据可以动态注入(inject)到 URL 中吗?

wordpress - 拥有一个带有 SSL 的新网站是否已经可以避免 Open Graph 问题?

facebook - 如何从帖子 ID 构建 Facebook 帖子 URL?

ruby-on-rails-3 - 导轨 3.1 : Do I need to use CoffeeScript?

mysql - 如何在mysql中编写更新查询?

ruby-on-rails-3 - Sinatra Warden 与使用 Devise 的现有 Ruby on Rails 应用程序

angular - 动态 og :image angular2

ruby-on-rails-3 - Rails 3的嵌套脚手架生成器?