ruby-on-rails
  • haml
  • 2011-01-14 213 views 22 likes 
    22
    #test 
        - html = "<a href='http://www.a.com'>Test</a>" 
        = html 
    

    La salida esUna cadena HTML se escapó en el archivo haml

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

    Pero yo quiero una salida:

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

    Cualquier persona tiene soluciones? Gracias.

    Respuesta

    29
    = raw html 
    

    o:

    = html.html_safe 
    
    +0

    que necesitaba esta información! thx – ecoologic

    +2

    'html_safe' solo funciona para cadenas, por eso prefiero'! = '(vea la respuesta de @ james-chen a continuación o' raw'. – iGEL

    +0

    ¿Hay una diferencia notable entre '= raw html',' = html.html_safe' y '! = html'? ** Editar: ** [Esta pregunta cubre algunas diferencias] (http://stackoverflow.com/questions/4251284/raw-vs-html-safe-vs-h-to-unescape- html). – Dennis

    4

    Hubo un cambio en los carriles 3 de manera que todo el contenido es ahora html escapó por defecto. Ver this blog post de Yehuda Katz para más detalles.

    Para imprimir el código HTML directamente es necesario utilizar html_safe en la variable:

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

    Para un ejemplo más complejo, ver this answer a una pregunta similar.

    26

    haml también proporciona con su etiqueta equivalente a los carriles prima método de 3: =, por ejemplo:!!

    = html

    +0

    Excelente consejo. Gracias! – sashaegorov

    +0

    No funciona en Rails 4.2.5 y haml 4.0.7 –

    Cuestiones relacionadas