Как отобразить HTML из переменной экземпляра Rails? - PullRequest
6 голосов
/ 25 июня 2010

У меня есть переменная intstance, которую я передаю представлению, @body.

@body - строка с html.

<%= @body %> отображает строку, а не HTML. Как мне рендерить HTML в строке?

возможно?

Заранее спасибо!

Ответы [ 2 ]

9 голосов
/ 08 февраля 2012

Ответ больше не верен. Rails 3 автоматически экранирует html для вас, поэтому, когда у вас есть контроллер:

@error = "<h1>OMG u broke teh intertubez!!111</h1>"

Это выведет HTML без экранирования:

<%= raw @error %>

И то и другое ускользнет от HTML:

<%= h @error %>
<%= @error %>
2 голосов
/ 25 июня 2010

<%= @body %> будет выводить html, если у вас есть html в @body. Немного странно иметь html в этой переменной, поскольку контроллер не должен передавать какой-либо HTML (контроллер должен быть независимым от просмотра).

Вот почему у нас есть несколько вспомогательных методов. Создайте вспомогательный метод, который генерирует HTML, и используйте его в своем представлении.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...