¿Te has preguntado alguna vez cómo los desarrolladores de Ruby integran a la perfección la lógica dinámica en sus plantillas HTML? Entre en Rubí integrado (ERB)ERB es un potente motor de plantillas que permite incrustar código Ruby directamente en HTML, permitiendo la creación de páginas web dinámicas y basadas en datos. Tanto si está creando un blog sencillo como una aplicación web compleja, ERB es una herramienta imprescindible para Desarrolladores Ruby.
En esta guía, te guiaremos a través de los conceptos básicos de ERB, desde su sintaxis y configuración hasta ejemplos prácticos y mejores prácticas. Al final, tendrás una sólida comprensión de cómo usar ERB para crear plantillas dinámicas y mantenibles en tus proyectos Ruby. ¡A trabajar!
¿Qué es Embedded Ruby (ERB)?
Embedded Ruby, o ERB, es un sistema de plantillas que permite escribir código Ruby directamente dentro de archivos HTML. Esta combinación permite generar contenidos dinámicos, como mostrar datos específicos del usuario o iterar sobre una lista de elementos. Los archivos ERB suelen tener la extensión .erb y son procesados por el intérprete de Ruby para producir la salida HTML final.
ERB es ampliamente utilizado en Ruby on Rails, donde sirve como motor de plantillas por defecto para renderizar vistas. Sin embargo, no se limita a Rails: ERB puede utilizarse en cualquier proyecto Ruby para crear plantillas dinámicas.
¿Cómo funciona el ERB?
ERB utiliza delimitadores especiales para distinguir el código Ruby del HTML. He aquí un rápido desglose de la sintaxis clave:
: Ejecuta código Ruby sin mostrar nada.
Ejemplo: erb
<% if user_signed_in? %>
<p>Bienvenido de nuevo.</p>
<% end %>
: Ejecuta código Ruby e incrusta el resultado en la plantilla.
Ejemplo: erb
<h1>Hola, <%= @user.name %>!</h1>
: Añade comentarios que se ignoran durante el renderizado.
Ejemplo: erb
<%# This is a comment and won't appear in the output %>
Estos delimitadores te permiten mezclar la lógica de Ruby con HTML, haciendo que tus plantillas sean dinámicas y flexibles.
Configuración de ERB en un proyecto Ruby
Utilizar ERB en un script Ruby independiente es sencillo. Así es como puedes empezar:
Requiere la biblioteca erb:
rubí
require 'erb'
Crear una plantilla ERB:
erb
<h1>Bienvenido, <%= @name %>!</h1>
Vincula datos a la plantilla y renderízala:
rubí
@nombre = "Alice"
template = ERB.new(File.read('template.erb'))
output = template.result(binding)
pone salida
En Ruby on Rails, ERB viene integrado por defecto, así que puedes empezar a utilizarlo de inmediato en tus vistas.
Características principales del ERB
ERB viene con varias características que lo convierten en un potente motor de plantillas:
- Parciales: Plantillas reutilizables que pueden incluirse en otras vistas.
Ejemplo: erb<%= render 'shared/header' %>
- Diseños: Estructuras compartidas (por ejemplo, encabezados, pies de página) que envuelven sus vistas.
Ejemplo: erb - Ayudantes: Métodos Ruby que simplifican la lógica compleja en las plantillas.
Ejemplo: rubydef formato_fecha(fecha)
date.strftime("%B %d, %Y")
fin - Escapar del HTML: Evita los ataques XSS mediante la desinfección de la entrada del usuario.
Ejemplo: erb<%= h(user_input) %>
Estas características hacen que el ERB sea versátil y adecuado para una amplia gama de casos de uso.
Casos comunes de uso del ERB
El ERB se utiliza habitualmente en escenarios como:
- Páginas web dinámicas: Generación de contenidos HTML a partir de entradas de usuario o consultas a bases de datos.
- Plantillas de correo electrónico: Creación de diseños de correo electrónico personalizables con datos dinámicos.
- Archivos de configuración: Creación de archivos de configuración o informes con lógica Ruby incrustada.
Por ejemplo, puede utilizar ERB para generar una lista de productos en una aplicación de comercio electrónico: erb
- - $
<% @products.each do |product| %>
<% end %>
Consejos para redactar plantillas de ERB limpias
Para que sus plantillas de ERB sean fáciles de mantener y eficientes, siga estas prácticas recomendadas:
- Minimizar la lógica Ruby en las plantillas: Traslada la lógica compleja a ayudantes o controladores.
- Utilizar parciales: Divida las plantillas grandes en componentes más pequeños y reutilizables.
- Evite la anidación profunda: Mantenga los condicionales y bucles simples para mejorar la legibilidad.
- Escapar de la entrada del usuario: Limpie siempre las entradas del usuario para evitar vulnerabilidades de seguridad.
Por ejemplo, en lugar de escribir: erb
<% if @user.admin? %>
<p>Panel de administración</p>
<% else %>
<p>Panel de usuario</p>
<% end %>
Puedes mover la lógica a un ayudante: ruby
def dashboard_message(usuario)
¿usuario.admin? ? "Panel de administración" : "Panel de usuario"
fin
Y simplificar la plantilla: erb
<p><%= dashboard_message(@user) %></p>
Ejemplo: Creación de una plantilla ERB sencilla
Veamos un ejemplo práctico de creación y renderización de una plantilla ERB:
Definir un script Ruby con datos: ruby
require 'erb'
@items = ['Manzana', 'Plátano', 'Cereza']
Crear una plantilla ERB: erb
<% @items.each do |item| %>
<% end %>
Renderizar la plantilla: ruby
template = ERB.new(File.read('template.erb'))
puts plantilla.resultado(vinculante)
La salida será: html
- Apple
- Plátano
- Cereza
ERB frente a otros motores de plantillas
Mientras que ERB es sencillo y fácil de usar, otros motores de plantillas como Haml, Slim y Liquid ofrecen distintas ventajas:
- Haml: Utiliza una sintaxis basada en la indentación para obtener plantillas más limpias y concisas.
- Slim: similar a Haml, pero centrado en el minimalismo y el rendimiento.
- Líquido: Diseñado para plantillas seguras, sandboxed (por ejemplo, en Shopify).
La fuerza de ERB reside en su sencillez y perfecta integración con Ruby, lo que lo convierte en una excelente opción para principiantes y Desarrolladores Rails.
Conclusión
Embedded Ruby (ERB) es una herramienta potente pero sencilla que tiende un puente entre la lógica Ruby y el HTML, convirtiéndola en una parte esencial del ecosistema Ruby. Ya sea para crear páginas web dinámicas, crear plantillas de correo electrónico o generar archivos de configuración, ERB ofrece la flexibilidad y sencillez necesarias para dar vida a tus ideas.
Al profundizar en Desarrollo en RubyEl dominio de ERB le permitirá crear aplicaciones más dinámicas, mantenibles y escalables. Así que, ¿por qué no empezar a experimentar con ERB hoy mismo? Construya un pequeño proyecto, ajuste algunas plantillas y vea cómo ERB puede transformar su flujo de trabajo.