Строка html экранируется в файле haml - PullRequest
29 голосов
/ 14 января 2011
#test
  - html = "<a href='http://www.a.com'>Test</a>"
  = html

Вывод

<div id='test'>
  &lt;a href='http://www.a.com'&gt;Test&lt;/a&gt;
</div>

Но я хочу вывод:

<div id='test'>
  <a href='http://www.a.com'>Test</a>
</div>

У кого-нибудь есть решения?Спасибо.

Ответы [ 3 ]

32 голосов
/ 14 января 2011
= raw html

или

= html.html_safe
28 голосов
/ 18 января 2011

haml также предоставляет эквивалентный тег для рельсов 3 raw метод: ! = , например:

! = Html

5 голосов
/ 14 января 2011

Произошло изменение в rails 3, так что весь контент теперь html экранирован по умолчанию.См. эту запись в блоге от Иегуды Каца для получения более подробной информации.

Чтобы напечатать html напрямую, вам нужно использовать html_safe для вашей переменной:

#content
 .title
   %h1= @title
   = @content.html_safe

Дляболее сложный пример, см. этот ответ на аналогичный вопрос.

...