当我进行编辑时,我的 HAML 表单会使用&ersand;
文本字段中的值呈现。我已经设置escape_html
为true,但它仍然呈现&ersand;
我在这里犯了什么错误?这是正确的语法吗?
我的表格:
= f.text_field :display_name, escape_html => true
当我进行编辑时,我的 HAML 表单会使用&ersand;
文本字段中的值呈现。我已经设置escape_html
为true,但它仍然呈现&ersand;
我在这里犯了什么错误?这是正确的语法吗?
我的表格:
= f.text_field :display_name, escape_html => true
作为序言,我只是在学习 haml (截至几个小时前),但我认为我至少有一个好地方让你开始,因为我认为你的问题是你需要将它设置为false
,而不是true
或者你应该尝试 unescape的HTML。我认为你最好的选择是看看这个haml的参考。
“Rails XSS 保护
Haml 支持 Rails 的 XSS 保护方案,该方案在 Rails 2.3.5+ 中引入,在 3.0.0+ 中默认启用。如果启用,Haml 的 :escape_html 选项默认设置为 true - 就像在 ERB 中一样,打印到 Haml 模板的所有字符串都默认转义。与 ERB 一样,标记为 HTML 安全的字符串也不会转义。Haml 也有自己的语法,用于将原始字符串打印到模板。
如果启用 XSS 保护时 :escape_html 选项设置为 false,Haml 默认不会转义 RUBY 字符串。但是,如果将标记为 HTML 安全的字符串传递给 Haml 的转义语法,它不会被转义。
最后,所有返回已知为 HTML 安全的字符串的 Haml 助手都被标记为此类。此外,字符串输入会被转义,除非它是 HTML 安全的。”
来自http://haml.info/docs/yardoc/file.REFERENCE.html#rails_xss_protection
我不是专家,但据我所知,如果您将:escape_html
选项设置为true
,您将始终获得经过清理的 html。如果您使用的是最新版本的 haml,则默认设置为 true。尝试将其设置为false
,而不是。
我刚刚发现的另一个有用的东西是对 html 进行转义。您可以尝试使用 != 在包含要保留未清理的 html 的 haml 前面。例如 -!= "I feel <strong>!"
编译为我觉得!。
来自http://haml.info/docs/yardoc/file.REFERENCE.html#unescaping_html
如果您已经知道这些内容或者它没有回答您的问题,我希望这会有所帮助和抱歉。祝你好运!
我认为 Ruby 有一些功能.html_safe
,raw()
所以当你保存它时,它会给你干净的文本。