我有一个字符串,里面有一些 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 元数据中使用此变量。
最佳答案
如果没有明确指定,清理似乎允许一些默认标签 引用:https://github.com/rails/rails-html-sanitizer/blob/master/lib/rails/html/sanitizer.rb
尝试使用 sanitize(str, {:tags => []})
关于html - Rails 清理方法不删除 html 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40491759/