2

我一直在很難讓Facebook識別<meta>標籤,其中包含.erb。這裏有一個例子:在Facebook中包含.erb <meta>標籤

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

下面的幾個細節:

  1. 網頁的源文件充分顯示了元標題和我期望的那樣。
  2. 我把logger debug @company.name放在meta標籤的正上方,我看到了預期的結果。
  3. 在FB上,我看到的只是「項目」。

你知道這裏發生了什麼嗎?

回答

0

這是因爲你的紅寶石包含在一個字符串中是錯誤的。

"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" 

選擇最後兩個解決方案之一來解決您的問題!

+0

這不是亞歷山大。第二個,當插入到一個html字符串中時,按原樣顯示,第三個被FB忽略。出於某種原因,它似乎在避免.erb生成的所有內容。 – sscirrus

+0

哦,對。我的第二種語法也是錯誤的(我現在編輯它)。你可以在文件的其他部分插入ruby代碼嗎? –

+0

絕對地 - 紅寶石在任何地方都能正常工作,除了顯然在這類標籤中(或者某種程度上被Facebook的.js忽略,儘管這對我來說也沒什麼意義)。 – sscirrus

1

只是嘗試使用''而不是「」;例如:

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

這不應該截斷字符串

+0

你知道爲什麼報價對Alessio有影響嗎? – sscirrus

+0

可以肯定的一個區別是,用雙引號可以使用插值。 –