Ruby on rails 3 Ruby/Rails—有没有一种简单的方法可以使硬编码的HTML符号HTML_安全?
在我的视图中,我想在链接中显示一些右双引号 在Rails 3之前,这是有效的: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中,有没有一种方法可以轻松地将硬编码文本/符号
现在,如果我想指定,该怎么办代码>作为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/符号。