2011-03-03 8 views
5

tengo el siguiente HAML escrito para tomar el lugar de una página de índice de andamio:HAML hace matriz después #each

%h1 Listing Races 

%table 
    %tr 
    %th Name 
    %th Date 
    %th Details 
    [email protected] do |race| 
    %tr 
     %td= race.name 
     %td= race.date 
     %td= race.details 
     %td= link_to 'Show', race 
     %td= link_to 'Edit', edit_race_path(race) 
     %td= link_to 'Destroy', race, :confirm => 'Are you sure?', :method => :delete 
%br 
= link_to 'New Race', new_race_path 

Cuando se representa la página, las tablas se imprimen como se esperaba, pero después, la matriz @races también se imprime; por ejemplo:

[#<Race id: 1, name: "TestRace15", date: "2011-03-11 11:00:00", details: "Test Race to make sure that everything seems to wor...", created_at: "2011-03-03 00:16:09", updated_at: "2011-03-03 00:16:09">] 

estoy haciendo algo de manera incorrecta con la estructura de bucle en el HAML, o lo que sería causando la matriz a ser prestados?

Respuesta

14

La tilde (~) genera el resultado de la línea, que es una matriz, ya que Array#each devuelve la matriz original. = y ~ actúan de manera similar en ese sentido; ~, sin embargo, conserva el espacio en blanco que = suele eliminar.

Probablemente haya querido utilizar el guion (-), que ejecuta el código pero no muestra el resultado de la expresión.

See the HAML docs for more :)

+1

Ese fue el problema. ¡Gracias por la ayuda! – ballpointcarrot