2010-10-17 12 views
6

ho trovato questo "eseguito senza alcuna sostituzione indietro nell'output", ma forse il mio inglese non era troppo buono, non posso davvero capire cosa significhi. Qualcuno può dare una mano?<% %> (senza uguale) in ruby ​​erb significa?

+0

Nel contesto Rails questo genere di cose significa quasi sempre 'il controllo di flusso' - è il codice che non restituisce un valore, ma piuttosto dice altro codice se e quando sparare. –

risposta

10

<%%>

Will eseguire codice rubino con alcun effetto sulla pagina html siano resi. L'output verrà gettato via.

<% =%>

Will eseguire codice Ruby e inserire l'uscita di quel codice al posto del <% =%>

esempio ...

<% puts "almost" %> nothing to see here 

renderebbe come

nothing to see here 

tuttavia

<%= puts "almost" %> nothing to see here 

renderebbe come

almost nothing to see here 
7

A volte è necessario eseguire (o si desidera) eseguire alcune dichiarazioni ruby ​​ma non per scopo di output.

simile al seguente:

<% if @user.nil? %> 
    Hi, welcome! 
<% else %> 
    Hi, <%= @user.name %>! 
<% end %> 

Naturalmente questo è solo un caso d'uso, ma a volte si ha bisogno <% %>: D

1

Codice in <% %> (senza uguali) viene eseguita "senza alcuna sostituzione di schiena nell'output "significa che si desidera eseguire il codice senza alcun output, come un loop e la parte migliore è che può essere utilizzato con un codice non ruby.

<% 3.times do %> 

<h1>Hello world</h1> 

<%end%> 

This will give: 

<h1>Hello world</h1> 
<h1>Hello world</h1> 
<h1>Hello world</h1> 
+0

ohh, grazie. Quindi con = ci deve essere un risultato! – wizztjh