2010-08-06 28 views
10

J'ai quelques balises trivial qui ressemble à ce qui suit:Comment commente-t-on dans un template erb?

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

Yat-il un moyen trivial de commenter cela? Le simple fait d'entourer le bloc <!-- --> laissera toujours le code ruby ​​disponible au modèle. Cela signifie que je dois commenter le code spécifique HTML et Ruby séparément.

Quelle est la meilleure façon de commenter les trois lignes avec le moins de balisage?

Répondre

11

et =end sont la version Ruby des commentaires de bloc.

En les utilisant dans un modèle de erb:

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

Cela fonctionne, et c'est le meilleur moyen que j'ai trouvé, mais cela ne signifie-t-il pas quelque chose de sémantiquement à part "commenter cela?" J'aimerais qu'il y ait une façon plus sanctionnée, si c'est le cas. –

+3

'= begin' et' = = end' sont la version Ruby des commentaires de bloc. Alternativement, vous pouvez également faire '<< - ASDF' et' ASDF' (en remplaçant ASDF par n'importe quel mot-clé). C'est le format de commentaire heredoc. – Karl

0

Edité parce que je remarqué la véritable intention de votre question:

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

Dans tous les surligneur de syntaxe que je l'ai utilisé (principalement TextMate), Cela doit être au tout début de la ligne, vous ne pouvez pas le mettre en retrait pour qu'il apparaisse commenté. Je ne sais pas si c'est une règle ou une mauvaise mise en œuvre de la mise en évidence.

3

ne fonctionne pas:

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

Est-ce que le travail:

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

En venant de Python/etc cette syntaxe est facile à utiliser et serait plus facile à lire pour une personne non Ruby. Une victoire dans mon livre n'importe quel jour. –

9

Vous pouvez commenter des blocs ERB en utilisant #:

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

ou d'éviter le HTML littéral en utilisant Rails content_tag méthode :