0

我有控制器方法:

def do_it
   @result = "some <b>another</b>"

   respond_to do | format |  
        format.js {render :layout => false}  
   end
end

还有 do_it.js.erb:

$( "#in" ).html("<b>hello</b> <br /> <%= @result %>");

当我调用这个方法时,我会得到“你好”作为粗体文本,但“另一个”作为浏览器中带有标签的普通文本。

在此处输入图像描述

我需要隐藏所有 html 标签并将“另一个”显示为粗体文本。我该如何解决?

4

2 回答 2

1

<%= %> escapes the HTML code by default. You can prevent it from doing this by:

$( "#in" ).html("<b>hello</b> <br /> <%= raw @result %>");

or

@result = "some <b>another</b>".html_safe()
于 2012-11-14T11:50:47.057 回答
0

我对 ruby​​ 不太了解,但我看到这篇文章可能与您的问题有关:

1- rails:如何对字符串进行 html 编码/转义?有内置的吗?

2-如何在 Ruby 中编码/解码 HTML 实体?

我认为您应该对原始字符串进行 html 编码

@result = "some <b>another</b>"

然后在显示时对其进行 html 解码。祝你好运

于 2012-11-14T10:50:11.323 回答