Ruby on Rails:使用sanitize helper在代码块内部使用少于'<'的符号

ste*_*ddy 8 html escaping ruby-on-rails sanitize

我试图在Rails中转义用户生成的内容.我使用raw with sanitizeraw helpers来过滤这样的内容:

raw(sanitize(code, :tags =>   ['<', 'h2','h3','p','br','ul','ol','li','code','pre','a'] ))
Run Code Online (Sandbox Code Playgroud)

内容中允许提及的标签列表.

问题是当我尝试用这样的SQL查询测试它时:

mysql -u sat -p -h localhost database <  data.sql
Run Code Online (Sandbox Code Playgroud)

precode块中,它会删除小于(<)符号后的所有内容.

请帮我弄清楚这样做的方法.

ste*_*ddy 2

看起来整个问题在于数据在数据库中的存储方式。以前,小于号“<”按原样保存,但现在它被转义,因此“<”将被保存,&lt;这似乎已经解决了问题。

在使用自动转义“<”的tinymce-rails WYSIWYG编辑器时,我意外地理解了这一点。

@kieran-johnson 的答案可能做了同样的事情,但tinymce-rails 解决了它,而无需安装额外的 gem。

感谢大家抽出时间提供帮助。