¿Puede alguien describir el uso de los siguientes caracteres que se utilizan en el archivo ERB:
<% %>
<%= %>
<% -%>
<%# %>
¿Cuál es el uso de cada uno?
ruby-on-rails
ruby
templates
erb
simo
fuente
fuente
-%>
, y stackoverflow.com/questions/3952403/… para<%=
, stackoverflow.com/questions/3901619/… para<%#
.<%= %>
y<%= -%>
son diferentes: solo este último elimina los espacios en blanco finales.Respuestas:
Ejecuta el código ruby dentro de los corchetes.
Imprime algo en el archivo erb.
Evita el salto de línea después de la expresión.
Comenta el código entre paréntesis; no enviado al cliente (a diferencia de los comentarios HTML).
Visite Ruby Doc para más información sobre ERB.
fuente
<%#
es normal<%
con un comentario de Ruby#
justo después ... Sí, es divertido pensar que es algo especial, pero ¿no es solo un lenguaje ERB en lugar de una construcción sintáctica especial?<%...%>
,<%#...%>
comenta todo , lo que no haría si fuera solo un comentario normal (es decir, solo comentaría la línea esta encendido).<% %>
y<%- and -%>
son para cualquier código Ruby, pero no muestra los resultados (por ejemplo, declaraciones if). Los dos son iguales.<%= %>
es para generar los resultados del código Ruby<%# %>
es un comentario de ERBAquí hay una buena guía: http://api.rubyonrails.org/classes/ActionView/Base.html
fuente
<%-
haga nada para liderar espacios en blanco, y no lo veo documentado en ningún lado. ¿Estás seguro de eso? Tal vez es un sabor diferente de ERB. No se muestra ninguna opción en los documentos stdlib.Rails no usa el ERB de stdlib por defecto, usa erubis . Fuentes: el comentario de este desarrollador , gemspec de ActionView , aceptó la solicitud de fusión que hice mientras escribía esto .
No son las diferencias de comportamiento entre ellos, en particular, sobre cómo los operadores de guión
%-
y-%
trabajo.La documentación es escasa. ¿Dónde se define "oficialmente" el formato ERB de Ruby? Entonces, lo que sigue son conclusiones empíricas.
Todas las pruebas suponen:
Cuando puedes usar
-
-
a latrim_mode
opción deERB.new
usarlo.Ejemplos:
Que
-%
hace:ERB: elimina el siguiente carácter si es una nueva línea.
erubis:
en
<% %>
(sin=
),-
es inútil porque<% %>
y<% -%>
son lo mismo.<% %>
elimina la línea actual si solo contiene espacios en blanco y no hace nada de otra manera.en
<%= -%>
(con=
):Ejemplos:
Que
%-
hace:ERB: elimine espacios en blanco antes de la etiqueta y después de nuevas líneas anteriores, pero solo si solo hay espacios en blanco antes.
erubis: inútil porque
<%- %>
es lo mismo que<% %>
(sin=
), y esto no se puede usar con lo=
cual es el único caso donde-%
puede ser útil. Así que nunca uses esto.Ejemplos:
Que
%-
y-%
hacer juntosLa combinación exacta de ambos efectos por separado.
fuente
<% %>
: Ejecuta el código ruby<%= %>
: Imprime en el archivo Erb. O navegador<% -%>
: Evita el salto de línea después de la expresión.<%# %>
: Comentario de ERBfuente
He agregado el
<%%
delimitador de etiqueta literal como respuesta a esto debido a su oscuridad. Esto le dirá a erb que no interprete la<%
parte de la etiqueta que es necesaria para las aplicaciones js, como mostrar información sobre herramientas chart.js, etc.Actualización (enlace roto fijo)
Todo sobre ERB ahora se puede encontrar aquí: https://puppet.com/docs/puppet/5.3/lang_template_erb.html#tags
fuente
Estos se usan en rubí sobre rieles : -
<%%>: -
Las etiquetas <%%> se utilizan para ejecutar código Ruby que no devuelve nada, como condiciones, bucles o bloques. P.ej :-
<% =%>: -
utilizar para mostrar el contenido.
<% -%>: -
Rails extiende ERB, para que pueda suprimir la nueva línea simplemente agregando un guión final a las etiquetas en las plantillas de Rails
<% #%>: -
comentar el código
fuente
<% %>
ejecuta el código allí pero no imprime el resultado, por ejemplo:podemos usarlo para si no en un archivo erb.
Imprimirá
temp is 1
<%= %>
ejecuta el código y también imprime la salida, por ejemplo:podemos imprimir el valor de una variable de rieles.
Imprimirá
1
<% -%>
No hace ninguna diferencia ya que no imprime nada,-%>
solo tiene sentido<%= -%>
, esto evitará una nueva línea.<%# %>
comentará el código escrito dentro de esto.fuente