Ответ 1
Попробуйте использовать raw(somePost.content)
. Альтернативно, somePost.content.html_safe
.
В приложении Rails 3 у меня есть класс домена, в котором один атрибут хранит чистый HTML-контент (это приложение для блога, класс домена - Post).
В шаблонах ERB мне нужно отобразить содержимое атрибута по мере его форматирования с использованием тегов HTML. Но Rails избегает всех HTML-тегов! Как я могу отключить это поведение для этого атрибута класса?
Пример:
somePost = Post.new
somePost.content = "<strong> Hi, i'm here! </strong>"
В шаблоне erb:
<%= somePost.content %>
Сгенерированный HTML:
<strong> Hi, i'm here! </strong>
Попробуйте использовать raw(somePost.content)
. Альтернативно, somePost.content.html_safe
.
Используйте raw(string)
, как описанный в примечаниях к выпуску.
7.4.3 Другие изменения
Вам больше не нужно вызывать h (string) для выхода из HTML-вывода, он включен по умолчанию во всех шаблонах представлений. Если вы хотите создать неизолированную строку, вызовите raw (string).
В принципе, где вы делали
<%=h @model.attr %>
прежде чем вы сможете использовать
<%= @model.attr %>
и когда вы это сделали, прежде чем вы сможете теперь использовать
<%=raw @model.attr %>
Использование двойного равенства означает, что результат не экранирован...
<%== somePost.content %>
Увидите этот SO-вопрос об этом - Что делает <% ==% > сделать в rails erb?