html - Rails 清理方法不删除 html 标签

标签 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 元数据中使用此变量。

最佳答案

如果没有明确指定,清理似乎允许一些默认标签 引用: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/

相关文章:

html - 控制 CSS 镜像文本的位置

javascript - 有没有更好的方法来获取 outerHtml?

html - 您将使用什么 HTML/CSS 来创建带背景的文本输入?

rspec - 如何测试 ApplicationRecord 抽象基类中的方法?

ruby-on-rails - Rails 回滚 change_column 迁移

ruby-on-rails - 根据格式路由到不同的操作

html-email - 清理电子邮件 html 正文并增加 HTML 缩放级别

css - Rails 5 白名单 css 属性用于清理助手

javascript - $(document).height() 与 $(document).scrollTop()+$(window).height() 之间的差异