¿Cómo comentas html mezclado con código ruby?
some text <% ... %> more text <%= ... %>
something else
<% ... %>
En jsp es muy simple:, <%-- ... --%>
pero no puedo encontrar ninguna opción concisa en rieles.
Los comentarios html simples <!-- ... -->
no funcionan: el código ruby todavía se ejecuta y grita errores.
Hay una opción para usar if false
con comentarios html, pero es bastante detallada, sin mencionar que los IDE no la admiten.
También hay una opción proveniente de rubí puro, que sorprendentemente funciona.
<%
=begin %>
... html and ruby code goes here
<%
=end %>
En general, está bien, excepto que es detallado, de aspecto extraño y ninguno de los IDE ruby que conozco lo admite (sí, me gusta comentar / comentar con una pulsación de tecla).
Tengo curiosidad, ¿hay algún 'oficial' de hacer esto en rieles?
¡Gracias!
fuente
<%= false %>
, no funcionaría. Sin embargo, debe probar la solución provista que funcionaría<% if false %>
sin el signo =<%# if false %>
.Use esto para comentar líneas individuales:
Para varias líneas, el
Lo que dijiste funcionaría.
fuente
El
=begin
enfoque es molesto porque:El
<% if false %>
enfoque funciona, pero parece extraño y no le da a nadie más que mire su código una pista sobre sus intenciones.Mi solución es la siguiente:
En
application_helper.rb
, agregue un método para:Luego, en su plantilla de vista, puede decir:
Esto funciona porque cualquier método Ruby puede tomar un bloque, pero ignorará silenciosamente el bloque pasado si su método no incluye un
yield
.fuente
ignore
odisable
y obtenemos una solución completamente semántica:<% ignore do %>…<% end %>
fuente
Para bloquear comentarios en plantillas, mi editor de texto (Komodo) encuentra esta variación en la recomendación de @ Garfield menos desagradable:
fuente
Para comentar las etiquetas erb, use el símbolo de hash de comentario ruby antes del signo = en la etiqueta de apertura
fuente
Ya que puedes usar
<% %>
para poner un bloque ruby, ciertamente se puede usar para agregar comentarios.Una solución más simple y elegante se vería como ...
fuente
Después de = comenzar no es necesario poner%>
fuente
Solo un apéndice a algunas de las respuestas anteriores. Encontré la solución = begin / = end más útil, pero por el bien de la belleza, la escribo así:
Tenga en cuenta que, dado que todo se ignora hasta que
=end
no hay necesidad de cerrar la=begin
etiqueta%>
o abrir la=end
etiqueta con<%
(lo que también se señaló en una respuesta anterior)Encontré que esta es la solución más elegante para excluir por completo un bloque de código ruby y html mezclado y tenerlo en gris también en mi editor, a diferencia de la
<% if false %>
solución. El único inconveniente es que=begin
y=end
debe ser colocado en el mismo comienzo de la línea ..fuente
Utilice un comentario llamado HEREDOC
Pros:
Contras:
Código:
La etiqueta de apertura puede ser
o
Cualquier cosa aquí no se ejecutará ni se mostrará en el navegador.
La etiqueta de cierre
sí, debe ser de 3 líneas 😟. No sé por qué la etiqueta erb de apertura es importante, ¡pero lo es! (a menos que no haya utilizado ninguna etiqueta erb en el comentario).
fuente
Hay que tener en cuenta dónde se ejecuta el código. Los comentarios de estilo Ruby funcionan porque el código Ruby se ejecuta en el servidor antes de que se sirva al navegador web. Esto también explica por qué los comentarios HTML no funcionan: Ruby ya se ha ejecutado.
¿El IDE que está utilizando no admite la creación de macros personalizadas para comentar bloques de código?
fuente
El atajo de comentario de bloque de Sublime Text ctrl+shift+/advierte si ha seleccionado HTML normal o una etiqueta Erb y coloca el
<!---
o en<% =begin %>
consecuencia.fuente
ctrl+d
para realizar una selección múltiple del inicio de cada etiqueta Erb<%
dentro del bloque y luego presionarctrl+shift+/
, luego presionarlo una vez más para que todo el bloque comente el HTML.Puede utilizar <% if false%> y comentarios HTML al mismo tiempo:
Los beneficios son:
El código Ruby no se ejecuta
El bloque comentado tiene color gris en IDE
La intención es obvia para otros desarrolladores.
fuente
Este es el único que funcionó para mí.
fuente
¡Espero haberlos asombrado!
fuente
La única solución aceptable que encontré para este problema fue poner un espacio dentro de "<% =" para que ya no se registre como código ruby, y luego comentar todo el bloque con comentarios html.
Me gusta esto:
Sí, agregar los espacios es molesto. Pero es la menos molesta de todas las soluciones que he visto hasta ahora.
fuente
#
... en lugar de enviar ruby en el documento.