У меня есть данные комментария, которые содержат текст html, и я хочу показать рендеры html без каких-либо тегов внутри.

Я работаю с RoR и slim.

Я пробовал sanitize, raw и html_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 был обработан!

0
user181452 6 Сен 2016 в 13:27

3 ответа

Лучший ответ

Наконец, я смог сделать это следующим образом

 CGI.unescapeHTML(text).html_safe
0
user181452 12 Сен 2016 в 09:51

Попробуй это. это может сработать

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

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

Документация для этого здесь sanitize_helper

0
user5710450user5710450 6 Сен 2016 в 11:02

Вы можете использовать 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"
0
Deepak Mahakale 6 Сен 2016 в 11:15