2012-07-19 107 views
2

在我的Rails应用程序中,我想要将FB OG元标签动态地与用户当前所在的页面连接起来。我觉得这应该是直截了当的,但不能让它正常工作。Facebook的OG Meta标签application.html.erb

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

目前,我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}" %>/> 

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

回答

1

我相信正确的语法是:如小白提到

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

是,使内容的声明是在引号内。

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

为了使这些元标签Rails的动态,人们首先使用由Ryan贝茨在pretty page title railscast

描述然而漂亮的页面标题的方法开始,我只是碰到来到这个元标记的宝石看起来非常有希望meta-tags

随着宝石,管理任何元标记,使他们动态和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/'] 
        } 
       } 

上面的代码输出下面的HTML时你再打电话<%=display_meta_tags%>

<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

+0

嘿丹尼,是宝石与轨道4兼容? – 2013-09-07 10:11:50

+0

它似乎是(我没有任何问题,并已升级到轨4),但是我没有看到任何最近提交任何与轨道4做任何事,它没有列在http://ready4rails4.net/ 。 – Danny 2013-09-07 23:01:03

+0

很酷,谢谢:) – 2013-09-08 07:52:34

0

请阅读我的博客文章,详细说明如何在整个Rails应用程序中使用这个工具 - 也许您可以将其添加到特定页面。我不确定它会解决您的具体问题,但可能会提供一些有用的调试信息。 http://blog.gingergriffis.com/post/59812374302/rails-app-thumbnail-on-facebook

我的博客文章的主要观点可能是有用的是facebook调试工具:http://developers.facebook.com/tools/debug

这里是我在application.html.erb文件中使用的设置:

<meta property=”og:title” content=”Ginger Griffis” /> 
<meta property=”og:type” content=”website” /> 
<meta property=”og:url” content=”http://www.gingergriffis.com/” /> 
<meta property=”og:image” content=”http://www.gingergriffis.com/assets/mylogolarge.jpg” /> 
<meta property=”og:description” content=”I am a RoR web dev...” /> 
+0

谢谢kleopatra - 我相当新这和欣赏的反馈。我的博客帖子的主要观点可能是facebook调试工具:https://developers.facebook.com/tools/debug。以下是我在application.html.erb文件中使用的设置: ' – Sedona 2013-09-07 17:52:33

+0

正在新的没有问题,希望我的提醒是温和的足够:-)顺便说一句,你可以编辑你的答案,并在那里添加细节(在你的评论中),它会更具可读性。 – kleopatra 2013-09-08 07:04:26