在HTML字符串中转义ruby代码

时间:2012-03-30 06:40:42

标签: ruby-on-rails ruby

我的控制器中有一个对象

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

当我通过&lt;%= @ data%&gt;在我的视图文件中打印它时它生成的html是

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

如何使用字符串打印/转义ruby代码?

3 个答案:

答案 0 :(得分: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 %>时,它应该正常显示。

答案 1 :(得分:0)

你可以尝试像这样的帮手......

   <%=h(@data)  %>

也可以使用原始

    <%=raw(@data) %>

答案 2 :(得分:0)

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

在您的视图中使用原始帮助方法

<%= raw(@data) %>