rails sanitize方法不删除html标签

时间:2016-11-08 16:20:00

标签: html ruby-on-rails-5 sanitize

我有一个包含一些html代码的字符串:

html_var = <h2>hello world</h2><p>foo bar</p> <b>and something else until 400 characters...</b>

我需要前180个没有html标签的字符。

我使用了truncate(html_var, :length => 180),它适用于180个字符。

我找到了http://api.rubyonrails.org/classes/ActionView/Helpers/SanitizeHelper.html来清理所有的html标签。所以我尝试了truncate(sanitize(html_var), :length => 180)并返回给我

<h2>hello world</h2><p>foo bar</p> <b>and truncated to 180 chars

我也试过了strip_tags,但结果仍然相同,至少是我在facebook的分享屏幕上看到的结果。正如我在og:description meta。

中使用此变量

2 个答案:

答案 0 :(得分:1)

我知道它迟到了。但可能这个答案会帮助其他用户  您可以使用strip_tags删除html标记。

使用此代码

html_var = <h2>hello world</h2><p>foo bar</p> <b>and something else until 400 characters...</b>
strip_tags(html_var.html_safe)

希望将来能帮到你。

答案 1 :(得分:1)

好像sanitize一样,如果未明确指定,则允许某些默认标记 参考:https://github.com/rails/rails-html-sanitizer/blob/master/lib/rails/html/sanitizer.rb

尝试使用sanitize(str,{:tags => []})