ruby-on-rails – 从rails中的属性中删除所有html标签

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – 从rails中的属性中删除所有html标签前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个Project模型,它有一些文本属性,一个是摘要.我有一些项目在摘要中有html标签,我想将其转换为纯文本.我有这个方法有一个正则表达式,将删除所有的html标签.
def strip_html_comments_on_data
  self.attributes.each{|key,value| value.to_s.gsub!(/(<[^>]+>|&nbsp;|\r|\n)/,"")}
end

我也有一个before_save过滤器

before_save :strip_html_comments_on_data

问题是保存项目后,html标签仍然存在.我失踪了什么

而且,在所有模型中都有一个很简单的方法调用方法

谢谢,

NicolásHock Isaza

解决方法

未经测试
include ActionView::Helpers::SanitizeHelper

def foo
  sanitized_output = sanitize(html_input)
end

其中html_input是包含HTML标签的字符串.

编辑

您可以通过传递:tags => []作为选项来剥离所有标签

plain_text = sanitize(html_input,:tags => [])

虽然读了docs我看到有一个更好的方法

plain_text = strip_tags(html_input)

然后让它成为一个过滤器,每个smotchkiss,你很好去.

猜你在找的Ruby相关文章