2011-01-11 2 views
3

я представил форму, чтобы создать одну строку в таблице базы данных SQL, как запись в блоге:Rails 3 не делает HTML как разметка

<p>This is a paragraph.</p>

И в результате, когда я запрашиваю его для отображения , с помощью ActiveRecord Rails, он оказывается, как это,:

<p>This is a paragraph.</p>

и вот код, при просмотре источника в браузере:

&lt;p&gt;This is a paragraph.&lt;/p&gt;

Как это решить? Или мне просто нужно преобразовать < и > по Javascript?

Спасибо :)

ответ

7

Что происходит, что строка в настоящее время HTML-убежали.

Вы можете использовать html_safe, чтобы избежать строки при ее рендеринге. Например, <%= post.paragraph.html_safe %>.

Но, конечно, не рекомендуется в том случае, если вы разрешили хранить (без ограничений) HTML в первую очередь, он мог содержать, например, вредоносный JavaScript (например, для XSS). Излишне говорить, что это очень плохая практика.

Важное примечание Вы должны убедиться, что HTML содержит белый список разрешенных HTML тегов перед использованием html_safe на любой HTML. Кроме того, вы можете использовать белый список даже при сохранении содержимого формы (обратите внимание, что принудительное использование белых списков при сохранении не является заменой для обеспечения использования белого списка при отображении содержимого!).

Возможно, вы захотите начать работу с этим StackOverflow's own "rules".

+0

спасибо! – howdy

Смежные вопросы