我有一个包含html文本的评论数据,我想显示没有任何标签的html渲染。
我正在使用RoR和苗条。
我尝试了sanitize
,raw
和html_safe
。但他们都给了我相同的结果。他们删除了一些HTML,但我仍然看到了html标签。
使用前的数据:
<img alt="User-added image" src="https://rrrrr;amp;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
使用后的数据:
= 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&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都被渲染!
答案 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&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