Ruby on rails 允许使用简单\u格式帮助器的id属性

Ruby on rails 允许使用简单\u格式帮助器的id属性,ruby-on-rails,views,html-helper,Ruby On Rails,Views,Html Helper,作为概念证明,首先是一些控制台输出: ruby-1.9.2-p180 :010 > x = "<span id='c_3'>s</span>" => "<span id='c_3'>s</span>" ruby-1.9.2-p180 :011 > helper.simple_format(x) => "<p><span>s</span></p>" ruby-1.9.2-

作为概念证明,首先是一些控制台输出:

ruby-1.9.2-p180 :010 > x = "<span id='c_3'>s</span>"
 => "<span id='c_3'>s</span>" 
ruby-1.9.2-p180 :011 > helper.simple_format(x)
 => "<p><span>s</span></p>"
ruby-1.9.2-p180:010>x=“s”
=>“s”
ruby-1.9.2-p180:011>helper.simple_格式(x)
=>“s

原因是Rails助手方法
simple\u format
在执行的最后调用
sanitize
方法,该方法去掉了属性

我知道,
sanitize
将允许您指定不应剥离的属性。我的问题是:是否有可能以某种方式通过简单的_格式传递“白名单”属性(本例中为id)


谢谢

您不能传递白名单,但可以通过执行以下操作完全禁用消毒

simple_format(x, :sanitize => false)

啊!我现在明白了。查看源代码时,我看到这一行`text=sanitize(text),除非选项[:sanitize]==false`完全单击。多谢@Dogbert!实际上,要禁用清理,需要使用第三个参数,而不是第二个参数,即“html选项”,另一个散列。所以正确的形式应该是
simple_format(x,{}, :sanitize => false)