Как отображать содержимое с помощью raw html
@post.body
имеет следующий контент (который преобразован из Markdown с помощью RDiscount). Как я должен отображать его пользователю в том, что он означает? я хочу, чтобы сделать его как текст сильный текст...
<p><strong>strong text</strong> </p> <p><em>emphasized text</em> </p> <blockquote> <p>this is a quote</p> </blockquote><p><img src="http://www.picturehouse.com/titles/images/rock.jpg" alt="alt text" title="" /> </p>
Использование <%= @post.body =>
будет отображать его только как текст, показанный выше.
Ответы
Ответ 1
Предполагая Rails 3, используйте raw вспомогательный метод, например.
<%= raw(@post.body) %>
Выход из HTML-вывода по умолчанию включен во всех шаблонах представлений (в отличие от более ранних версий, где вам приходилось использовать метод h
для исключения строк отдельно).
Ответ 2
Используете ли вы рельсы 3? Он автоматически удаляет все содержимое тегов <%= %>
. Чтобы избежать этого, сделайте
<%= raw(@post.body) %>
Ответ 3
Я так понимаю, вы в Rails 3? Одно большое изменение заключается в том, что отображаемый текст был необработанным по умолчанию, и вам приходилось санировать его самостоятельно. Теперь все наоборот. Назовите это так:
<%= raw(@post.body) %>
И вы получите то, что ищете.