我有一个包含一些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。
答案 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 => []})