2011-01-14 11 views
22
#test 
    - html = "<a href='http://www.a.com'>Test</a>" 
    = html 

出力はHTML文字列をHAMLファイルにエスケープされ

<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> 

誰もが解決策を持っていますか?ありがとう。

答えて

29
= raw html 

か:

= html.html_safe 
+0

は、私は、この情報を必要に応じて! thx – ecoologic

+2

'html_safe'は文字列にしか使えないので、'!= 'の方が好きです(@ james-chenの答えは' raw'を参照してください。) – iGEL

+0

'= raw html'、' = html.html_safe' 、 '!= html'?**編集:** [この質問にはいくつかの違いがあります](http://stackoverflow.com/questions/4251284/raw-vs-html-safe-vs-h-to-unescape- html)。 – Dennis

4

すべてのコンテンツは、デフォルトでエスケープHTMLされるように、レール3の変化がありました。詳細はYehuda Katzのthis blog postを参照してください。

HTMLを直接印刷するためには、あなたの変数にhtml_safe使用する必要があります。より複雑な例については

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

、同様の質問にはthis answerを参照してください。 =、例えば::!

26

HAMLもレール3の方法とそれに相当するタグを提供しています!

= htmlの

+0

素晴らしいヒント!ありがとう! – sashaegorov

+0

Rails 4.2.5とhaml 4.0.7では動作しません –

関連する問題