¿Cuál es el significado de erb?

132

¿Por qué la vista de la aplicación Rails está en el formato *.erb.html? ¿Qué significa "erb"?

khanh
fuente

Respuestas:

164

erb significa "RuBy incrustado". Una .html.erbo .erb.htmlarchivo es HTML con código Ruby embebido en; Rails evaluará el Ruby para agregar contenido al archivo dinámicamente, y generará un archivo HTML "puro" para renderizar.

Chowlett
fuente
9
Bonificación: también puede agregar su configuración regional a la mezcla: index.en.html.erb e index.de.html.erb
desde el
3
cojo, deberían eliminar el html. no ves html.php
luckyguy73
46

Como @Chowlett mencionó anteriormente, erb significa Ruby incrustado . Cuando define cualquier archivo como ".html.erb", eso significa que es un archivo HTML con código ruby ​​incrustado y es similar a la extensión ".rhtml" del archivo rails.

Puede ver una diferencia detallada y agradable entre ".html.erb" y ".rhtml" Haga clic aquí

Igual que ".rhtml", también puede cambiar el nombre de la extensión ".rjs" a ".js.erb" o ".rxml" a ".xml.erb"

Este formato separa el tipo de contenido del motor de plantillas que es "erb" en este caso.

Nimesh Nikum
fuente
1
Gracias @ khanh por apreciar mi respuesta :)
Nimesh Nikum
9

De una introducción a la plantilla de ERB de Stuart Ellis :

ERB (Embedded RuBy) es una característica de Ruby que le permite generar convenientemente cualquier tipo de texto, en cualquier cantidad, a partir de plantillas. Las plantillas en sí combinan texto plano con código Ruby para la sustitución de variables y el control de flujo, lo que facilita su escritura y mantenimiento.

Aunque ERB se ve más comúnmente generando páginas web, también se usa para producir documentos XML, fuentes RSS, código fuente y otras formas de archivo de texto estructurado. Puede ser extremadamente valioso cuando necesita crear archivos que incluyen muchas repeticiones de un patrón estándar, como los conjuntos de pruebas unitarias.

El componente principal de ERB es una biblioteca a la que puede llamar dentro de sus aplicaciones Ruby y tareas Rake. Esta biblioteca acepta cualquier cadena como plantilla y no impone limitaciones en el origen de la plantilla. Puede definir una plantilla completamente dentro de su código, o almacenarla en una ubicación externa y cargarla según sea necesario. Esto significa que puede mantener plantillas en archivos, bases de datos SQL o cualquier otro tipo de almacenamiento que desee utilizar.

Las distribuciones de Ruby también incluyen una utilidad de línea de comandos que le permite procesar plantillas que se guardan en archivos sin escribir ningún código adicional. Lógicamente, esta utilidad se llama erb.

ERB es parte de la biblioteca estándar de Ruby. No necesita instalar ningún otro software para usarlo.

El artículo original contiene más detalles y una breve guía sobre el uso de ERB. También puedes leer los documentos oficiales .


Nota: el bloque citado arriba fue publicado previamente como respuesta por otro usuario sin vincularlo a Introducción a ERB. Templa o reconoce que no era el trabajo de ese usuario. Esa publicación fue (correctamente) eliminada por plagio. Sin embargo, pensé que era una respuesta útil , así que volví a publicar la cita dando la atribución adecuada a Stuart Ellis, el autor original.

Mark Amery
fuente
5

Embedded Ruby, también llamado ERb, es el principal sistema de plantillas para incluir contenido dinámico en páginas web. --Michael Hertl

Andy Young
fuente
4

desde formato de plantilla Un archivo que contiene una plantilla ERB puede tener cualquier nombre, pero es la convención que el nombre del archivo debe terminar con la extensión .erb. Rails requiere que los archivos de plantilla tengan la extensión del tipo de salida, seguido de .erb, de modo que un nombre como layout.html.erb indique una plantilla HTML.

Los archivos erb simplemente generarán texto. Nada mas. Qué texto depende de la combinación de texto estático y código ruby ​​dentro del archivo. Puede usar erb para generar html, que es el uso predeterminado en Rails, porque eso es lo que los navegadores necesitan para mostrar una página.

En ruby ​​hay ciertos valores predeterminados. Un valor predeterminado es que un controlador representará una página html. Pero puede hacer que responda fácilmente con .xml o .json o .csv si escribe una API web para ello

Erb es una clase de biblioteca que genera texto. Nada mas. Espera un archivo que contenga texto estático y código ruby ​​mezclado. Ejecutará el código ruby ​​y escribirá el resultado en otro archivo que, en el caso de sus controladores, es html

Ahmed Ali
fuente