2010-08-06 12 views
10

Ho alcuni markup banale che è simile al seguente:Come si commenta un modello erb?

<li class="someclass"> 
    <=% t'model.attr' %> 
</li> 

Esiste un modo banale per commentare che fuori? Il semplice spostamento di <!-- --> attorno al blocco lascerà comunque disponibile il codice ruby ​​al modello. Ciò significa che devo commentare separatamente il codice specifico HTML e Ruby.

Qual è il modo migliore per commentare tutte e tre le righe con il minor numero di markup?

risposta

11

e =end sono la versione Ruby dei commenti di blocco.

Il loro utilizzo in un modello erb:

<% 
=begin 
%> 
<li class="someclass"> 
    <=% t'model.attr' %> 
</li> 
<% 
=end 
%> 
+0

Questo funziona, ed è il modo migliore che ho trovato, ma non significa qualcosa semanticamente oltre a "commentare questo?" Vorrei che ci fosse un modo più sanzionato, se così fosse. –

+3

'= begin' e' = end' sono la versione di Ruby dei commenti di blocco. In alternativa, potresti anche fare << << - ASDF' e 'ASDF' (sostituendo ASDF con qualunque parola chiave tu voglia). Questo è il formato di commento heredoc. – Karl

0

cura perché ho notato la vera intenzione della tua domanda:

<% 
=begin 
%> 
<li class="someclass"> 
    <%= t'model.attr' %> 
</li> 
<% 
=end 
%> 

In ogni evidenziatore sintassi che ho usato (soprattutto TextMate), questo deve essere all'inizio della riga, non puoi indentarlo perché appaia commentato. Non so se questa è una regola o una scarsa attuazione dell'evidenziazione.

3

non funziona:

<%# <li class="someclass"> 
    <=% t'model.attr' %> 
</li> %> 

funziona:

<% if false %> 
<li class="someclass"> 
    <=% t'model.attr' %> 
</li>  
<% end %> 
+0

Proveniente da Python/etc questa sintassi è facile da usare e sarebbe più facile da leggere per una persona non Ruby. Una vittoria nel mio libro ogni giorno. –

9

Puoi commentare blocchi ERB utilizzando #:

<!-- <li class="someclass"> --> 
    <%#= t'model.attr' %> 
<!-- </li> --> 

o evitare l'HTML letterale utilizzando content_tag metodo di Rails :

<%#= content_tag :li, t'model.attr', :class=>:someclass %> 
Problemi correlati