2012-03-30 9 views
12

Estoy generando un correo electrónico con contenido dinámico de una plantilla Haml que analiza información de una matriz.'array.each do | block |' incluyendo los resultados de la declaración en Haml HTML generado

Básicamente, el Haml recibe una matriz llena de varios valores hash. En el código que tengo un bloque que tiene este aspecto:

%table 
    =arrayname.each do |object| 
    %tr 
     %td= object.name 
     %td= object.link 

Cada vez que el correo electrónico se envía a todo el objeto arrayname se incluye en la parte inferior del HTML. Esto causa [#,#] (más # cuando hay más objetos) para mostrar en el superior del bloque. No hay forma de manipular este texto con CSS, de lo contrario lo habría ocultado.

[#<Release @id=181 @title="test" @amurl="test.com" @iturl="test.com" @cover="test.com" @date="2012-03-28" @artist_name="Test">, #<Release @id=182 @title="test" @amurl="test.com" @iturl="test.com" @cover="" @date="2012-03-31" @artist_name="Test">] 

La línea es idéntica a los resultados que se muestran al ejecutar el código en IRB.

¿Alguien me puede decir cómo evitar que esto suceda?

Respuesta

20

Con Haml, no es necesario utilizar un = para arrayname.each porque ese es el código de Ruby que desea ejecutar, pero no se muestra. Para solo ejecutar el código, use un guión.

En su lugar, esto debería funcionar:

%table 
    - arrayname.each do |object| 
    %tr 
     %td= object.name 
     %td= object.link 
+1

cerdo mí lado. Debería haber leído la referencia de Haml mejor o publicado aquí antes. Las cosas tontas que he intentado ... ¡Muchas gracias! – gagootch

Cuestiones relacionadas