清理和原始仍显示html标签,Slim

时间:2016-09-06 10:27:26

标签: html ruby-on-rails slim-lang

我有一个包含html文本的评论数据,我想显示没有任何标签的html渲染。

我正在使用RoR和苗条。

我尝试了sanitizerawhtml_safe。但他们都给了我相同的结果。他们删除了一些HTML,但我仍然看到了html标签。

使用前的数据:

<img alt="User-added image" src="https://rrrrr;amp;feoid=00N2400000H7Rxb&refid=0EM7E0000004FgN" style="height: 333px; width: 500px;"></img><br><br>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam 

使用后的数据:

    = raw resource.comments
    = sanitize resource.comments
    = strip_tags "'#{resource.comments}'"
    = ActionView::Base.full_sanitizer.sanitize(resource.comments)

def formatted_comments
  h.sanitize(comments, :tags => [], :attributes => [])
end 

 = formatted_comments

结果:

<img alt="User-added image" src="https://rrrrr;feoid=00N2400000H7Rxb&amp;refid=0EM7E0000004FgN" style="height: 333px; width: 500px;"></img><br><br>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam 

更新

我注意到渲染的html标记包含以下内容。 " my result of html tags here " = $0 试图手动删除它,所有的HTML都被渲染!

3 个答案:

答案 0 :(得分:0)

试试这个。它可能有用

rich_text = "<h1 class='some', some_other='some'>This is sentense </h1>"

helper.sanitize(rich_text, :tags => [], :attributes => [])

此处的文档 sanitize_helper

答案 1 :(得分:0)

您可以使用strip_tags它会通过删除所有html标记返回结果

str = "<img alt='User-added image' src='https://rrrrr;feoid=00N2400000H7Rxb&amp;refid=0EM7E0000004FgN' style='height: 333px; width: 500px;'></img><br><br>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam"

在苗条

中使用它
= strip_tags str

#=> "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam"

答案 2 :(得分:0)

最后我能够像下面这样做

 CGI.unescapeHTML(text).html_safe