Rails - 未能正确设置打开的图形URL

时间:2014-03-13 06:10:46

标签: ruby-on-rails

我正在开发一个Rails应用程序,我希望使用开放图形协议,以便在"文章"页面人员可以链接到社交媒体(Facebook,推特和谷歌+)推荐/喜欢这篇文章。

作为我努力的一部分,在页面的head部分内为URL设置og元标记失败。从代码partial ogmeta.html.erb

<meta property="og:title" content='<%= meta[:title] || "DrillInvestor" %>'>
<meta property="og:type" content='<%= meta[:type] || "website" %>'>
<meta property="og:image" content='<%= meta[:image] || "http://www.whatever.com/image.jpg" %>'>
<meta property="og:url" content='<%= meta[:url] || "post_url(@post)" %>'>

当我查看页面源时,我看到了

<html>
   <head>  
   <link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css">
   <script src="http://code.jquery.com/jquery-1.9.1.js"></script>
   <script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>  
   <meta property="og:title" content='DrillInvestor'>
   <meta property="og:type" content='website'>
   <meta property="og:image" content='http://www.whatever.com/image.jpg'>

   <meta property="og:url" content='post_url(@post)'>

我想通过帖子控制器中的print语句看到的url是什么?

puts "==================="
puts "url = " + post_url(@post).to_s

我看到url = http://quiet-fortress-3338.herokuapp.com/posts/drill-01-more-updates这就是我想要的,在这种情况下,看作是og:url。

我是一名正在恢复的COBOL计划者,有时候(或许还有更多)会因为这种事情而迷失方向。 如果我硬编码og:url我会得到合适的页面。我尝试了一些不同的东西,包括#{}括起post_url(@post)等。 在此先感谢,欢迎任何帮助 皮尔

1 个答案:

答案 0 :(得分:0)

您需要摆脱"post_url(@post)"周围的引号。只需将其更改为post_url(@post)即可。请注意,在您的print语句中,您没有将其括在引号中,并且它可以正常工作。

另外,在任何一种情况下都不需要调用to_s - post_url(@post)会返回一个字符串。