【问题标题】:Including .erb in Facebook <meta> tags在 Facebook <meta> 标签中包含 .erb
【发布时间】:2011-09-04 11:49:52
【问题描述】:

让 Facebook 识别包含 .erb&lt;meta&gt; 标签时遇到了很多麻烦。这是一个例子:

<meta property="og:title" content="Projects <%= @company.name.present? ? ('with ' + @company.name) : '' %>" />

这里有一些细节:

  1. 页面源完全按照我的预期显示了元标题。
  2. 我将logger debug @company.name 放在元标记的正上方,我看到了预期的结果。
  3. 在 FB 上,我看到的只是“项目”。

你知道这里发生了什么吗?

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 facebook-graph-api social-networking


    【解决方案1】:

    尝试使用 ' ' 而不是 " " ;例如:

       <meta property="og:description" content='<%= @job_details.description %>' />
    

    这不应该截断字符串

    【讨论】:

    • 你知道为什么引号对 Alessio 有影响吗?
    • 肯定的区别之一是双引号可以使用插值。
    【解决方案2】:

    这是因为您将 ruby​​ 包含在字符串中是错误的。

    "Projects <%= @company.name.present? ? ('with ' + @company.name) : '' %>"
    --> "Projects <%= @company.name.present? ? ('with ' + @company.name) : '' %>"
    
    <%= "Projects #{ @company.name.present? ? ('with ' + @company.name) : '' }" %>
    --> "Projects with Apple"
    
    <%= "Projects " + @company.name.present? ? ('with ' + @company.name) : '' %>
    --> "Projects with Apple"
    

    选择最后两个解决方案之一来解决您的问题!

    【讨论】:

    • 不是亚历山大。第二个,当插入 html 字符串时,按原样显示,第三个被 FB 忽略。出于某种原因,它似乎避免了 .erb 生成的所有内容。
    • 哦,对了。我的第二个语法也是错误的(我现在已经编辑过了)。你能在文件的其他部分插入 ruby​​ 代码吗?
    • 绝对 - 红宝石在任何地方都可以正常工作,除非显然在这种标签中(或者可能以某种方式被 Facebook 的 .js 忽略,尽管这对我来说也没有多大意义)。
    猜你喜欢
    • 1970-01-01
    • 2012-06-20
    • 2014-05-18
    • 2011-08-14
    • 1970-01-01
    • 1970-01-01
    • 2011-01-20
    • 1970-01-01
    • 2013-07-06
    相关资源
    最近更新 更多