2012-10-31 25 views
5

Ho il seguente codice:rotaie per Loop View

<tbody> 
    <%= Item.each do |item|=%> 
    <tr> 
     <th><%= item.rev =%></th>  <========= 
     <th><%= item.name =%></th> 
    </tr> 
    <%= end =%> 
</tbody> 

Comunque sto ottenendo un errore di sintassi sulla linea inidcated. Ci sono dati nel database (Test case). Non ho idea di cosa sto sbagliando.

risposta

13

L'equivale a segni che hai sbagliato. Prova come di seguito:

<tbody> 
    <% Item.each do |item|%> 
    <tr> 
     <th><%= item.rev %></th>  
     <th><%= item.name %></th> 
    </tr> 
    <% end %> 
</tbody> 

Il <% = deve essere utilizzato per le espressioni che devono essere valutati.

per aiutare a capire rubino incastonato vedere questo link http://www.ruby-doc.org/docs/ProgrammingRuby/html/web.html

1

L'espressione per i tag erb è <% #code%>
ora se vogliamo stampare quel tag anche allora applichiamo <% = #code% >
vale a dire solo un segno "=" è usato e anche quello sul lato sinistro.
Anche in linea a ciascun iteratore non può essere stampato nulla, quindi nessun '=' segno su tale riga, simile è il caso con tag contenenti 'end'.

Quindi il codice dovrebbe essere simile

<tbody>
          <% Item.each do | oggetto | %>
                    <tr>
                              <th> <% = item.rev%></th>
                              <th> <% = item.name%></th>
                    </tr>
          <% end%>
</tbody>