hml字符串在haml文件中转义

gar*_*dou 31 haml ruby-on-rails

#test
  - html = "<a href='http://www.a.com'>Test</a>"
  = html
Run Code Online (Sandbox Code Playgroud)

输出是

<div id='test'>
  &lt;a href='http://www.a.com'&gt;Test&lt;/a&gt;
</div>
Run Code Online (Sandbox Code Playgroud)

但我想要一个输出:

<div id='test'>
  <a href='http://www.a.com'>Test</a>
</div>
Run Code Online (Sandbox Code Playgroud)

谁有解决方案?谢谢.

gun*_*unn 33

= raw html
Run Code Online (Sandbox Code Playgroud)

要么:

= html.html_safe
Run Code Online (Sandbox Code Playgroud)

  • `html_safe`仅适用于字符串,这就是为什么我更喜欢`!=`(请参阅下面的@james-chen的答案或`raw`. (2认同)

Jam*_*hen 30

haml还提供了rails 3的原始方法的等效标记:!=,例如:

!= html


tom*_*rte 5

rails 3发生了变化,因此默认情况下所有内容都会被html转义.有关详细信息,请参阅Yehuda Katz的这篇博客文章.

要直接打印html,您需要在变量上使用html_safe:

#content
 .title
   %h1= @title
   = @content.html_safe
Run Code Online (Sandbox Code Playgroud)

有关更复杂的示例,请参阅类似问题的答案.