2012-03-30 155 views
-2

我有一個對象在我的控制器逃逸紅寶石代碼

@data="<meta property=\"og:url\" 
      content=\"<%=SITE_URL%><%=request.request_uri%>\" 
     />".html_safe 

當我打印這在我的視圖文件由<%= @數據%>它所生成的HTML是

<meta property="og:url" 
     content="<%=SITE_URL%><%=request.request_uri%>" 
/> 

如何用字符串打印/轉義紅寶石代碼?

+2

19個問題,0個接受的答案 - 哇! – Wukerplank 2012-03-30 06:44:15

+1

來吧你需要接受答案... – 2012-03-30 06:58:34

回答

2

您正在尋找字符串插值,這意味着在字符串中,它會替換變量的值。環繞以#{}這樣的變量: http://en.wikibooks.org/wiki/Ruby_Programming/Syntax/Literals#Interpolation

@data="<meta property=\"og:url\" 
     content=\"#{SITE_URL} #{request.request_uri}\" 
    />".html_safe 

現在,當你做<%= @data %>,它應該顯示正常。

+0

你確定你不想寫'#{SITE_URL}'而不是'<%=#{SITE_URL}%>'嗎?第二個在它裏面還有erb的插值方法。我不敢在未經許可的情況下編輯你的問題;) – Arsen7 2012-03-30 07:08:19

+0

..我的意思是'你的答案'當然。 – Arsen7 2012-03-30 07:23:09

+0

對啊......我想我有一個思維障礙 – serpent403 2012-03-31 04:40:38

0

你可以嘗試^ h助手這樣.....

<%=h(@data) %> 

原料也可以使用

<%=raw(@data) %> 
0
@data="<meta property=\"og:url\" 
     content=\"<%= #{SITE_URL}%><%= #{request.request_uri} %>\" 
    />" 

在你的看法使用原始的輔助方法

<%= raw(@data) %>