2010-08-06 15 views
10

que tienen algunas marcas triviales que se parece a lo siguiente:¿Cómo se comenta en una plantilla erb?

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

¿Hay una manera trivial para comentar que fuera? Simplemente envolviendo <!-- --> alrededor del bloque todavía dejará el código Ruby disponible para la plantilla. Esto significa que tengo que comentar el código específico HTML y Ruby por separado.

¿Cuál es la mejor manera de comentar las tres líneas con la menor cantidad de marcado?

Respuesta

11

y =end son la versión Ruby de los comentarios de bloque.

Su uso en una plantilla erb:

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

Esto funciona, y es la mejor forma que he encontrado, pero ¿no significa algo semántico además de "comentar esto?" Ojalá hubiera una manera más sancionada, si es así. –

+3

'= begin' y' = end' son la versión Ruby de los comentarios de bloque. Alternativamente, también puede hacer '<< - ASDF' y' ASDF' (reemplazando ASDF con la palabra clave que desee). Este es el formato de comentario heredoc. – Karl

0

Editado porque me di cuenta de la verdadera intención de su pregunta:

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

En cada resaltador de sintaxis que he utilizado (principalmente textmate), esto debe ser al principio de la línea, no se puede sangrar para que aparezca como comentado. No sé si esa es una regla o una implementación deficiente del resaltado.

3

no funciona:

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

¿Funciona:

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

Viniendo desde Python/etc, esta sintaxis es fácil de usar y sería más fácil de leer para una persona que no sea Ruby. Una victoria en mi libro cualquier día. –

9

se puede comentar ERB bloques usando #:

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

o evitar el uso de HTML literal rieles content_tag método :

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