Ruby on rails 3 Ruby/Rails—有没有一种简单的方法可以使硬编码的HTML符号HTML_安全?

Ruby on rails 3 Ruby/Rails—有没有一种简单的方法可以使硬编码的HTML符号HTML_安全?,ruby-on-rails-3,html-safe,Ruby On Rails 3,Html Safe,在我的视图中,我想在链接中显示一些右双引号 在Rails 3之前,这是有效的: 现在,如果我想指定,该怎么办作为html_安全,但不是链接的其余文本 换句话说,我不想这样做: 我不希望将@category.name视为html\u安全 这将产生所需的结果: 但是,如果我这样做: 角度引号的输出不被视为安全。我明白了在我的页面上,而不是» 为什么? 我尝试将“»;”.html\u safe提取到一个助手方法,结果相同 在Rails 3中,有没有一种方法可以轻松地将硬编码文本/符号

在我的视图中,我想在链接中显示一些右双引号

在Rails 3之前,这是有效的:

现在,如果我想指定
,该怎么办作为html_安全,但不是链接的其余文本

换句话说,我不想这样做:

我不希望将
@category.name
视为html\u安全

这将产生所需的结果:

但是,如果我这样做:

角度引号的输出不被视为安全。我明白了在我的页面上,而不是»

为什么?

我尝试将
“»;”.html\u safe
提取到一个助手方法,结果相同

在Rails 3中,有没有一种方法可以轻松地将硬编码文本/符号指定为HMTL safe


谢谢。

您需要确保整个字符串是html\u安全的

我建议您试试这个:

   "» #{h @cagegory.name}".html_safe

在这种情况下,我经常明确地避开不安全的部分:

"» #{h @category.name}".html_safe

这是危险的。请注意,类别名称没有得到安全处理,并且系统容易受到JS注入的攻击。这一点很好!是的,如果名称是一个用户可访问的属性,那么我们需要在类别名称前加一个“h”来转义HTML!(我要补充一点)我会删除这里的“经常”位,或者用always替换它,或者指出也可以使用消毒剂。h显式转义html。看,看起来这是正确的答案…但我不喜欢。我希望有一种方法可以将字符/html列表指定为“ok”,或者至少有一种方法可以信任视图中的硬编码字符/html/符号。