Embedded Ruby (ERB) 101: Guía para principiantes sobre plantillas dinámicas en Ruby

17 de marzo de 2025

¿Alguna vez te has preguntado cómo los desarrolladores de Ruby integran a la perfección la lógica dinámica en sus plantillas HTML? Entra Ruby incrustado (ERB), un potente motor de plantillas que permite incrustar código Ruby directamente en HTML, lo que facilita la creación de páginas web dinámicas y basadas en datos. Ya sea que estés creando un blog sencillo o una aplicación web compleja, ERB es una herramienta imprescindible para Desarrolladores de 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 finalizar, tendrás una comprensión sólida de cómo usar ERB para crear plantillas dinámicas y fáciles de mantener en tus proyectos de Ruby. ¡Empecemos!

¿Qué es Embedded Ruby (ERB)?

Ruby incrustado, o ERB, es un sistema de plantillas que permite escribir código Ruby directamente dentro de archivos HTML. Esta combinación permite generar contenido dinámico, como mostrar datos específicos del usuario o recorrer una lista de elementos. Los archivos ERB suelen tener la extensión .erb y son procesados por el intérprete de Ruby para generar el código HTML final.

ERB se utiliza ampliamente en Ruby on Rails, donde actúa como motor de plantillas predeterminado para generar vistas. Sin embargo, su uso no se limita a Rails: ERB se puede utilizar en cualquier proyecto de Ruby para crear plantillas dinámicas.

¿Cómo funciona ERB?

ERB utiliza delimitadores especiales para diferenciar el código Ruby del HTML. A continuación, te ofrecemos un breve resumen de la sintaxis principal:

: Ejecuta código Ruby sin generar ninguna salida.

Ejemplo: erb

<% if user_signed_in? %>
<p>¡Bienvenido de nuevo!</p>
<% end %>

: Ejecuta código Ruby e incorpora el resultado en la plantilla.
Ejemplo: erb

<h1>Hola, <%= @user.name %>!</h1>

: Agrega comentarios que se ignoran durante la representación.
Ejemplo: erb

<%# This is a comment and won't appear in the output %>

Estos delimitadores te permiten combinar la lógica de Ruby con el HTML, lo que hace que tus plantillas sean dinámicas y flexibles.

Configuración de ERB en un proyecto de Ruby

Usar ERB en un script independiente de Ruby es muy sencillo. A continuación te explicamos cómo empezar:

Incluye la biblioteca erb:
rubí

require 'erb'

Crear una plantilla ERB:
hierba


<h1>Bienvenido, <%= @name %>!</h1>

Asigna los datos a la plantilla y visualízala:
rubí

@name = "Alice"
plantilla = ERB.new(File.read('plantilla.erb'))
resultado = plantilla.resultado(enlace)
muestra el resultado

En Ruby on Rails, ERB viene integrado de forma predeterminada, por lo que puedes empezar a utilizarlo de inmediato en tus vistas.

Características principales de ERB

ERB incluye varias características que lo convierten en un potente motor de plantillas:

  • Prótesis parciales: Plantillas reutilizables que se pueden incluir en otras vistas.
    Ejemplo: erb
    <%= render 'shared/header' %>
  • Diseños: Estructuras compartidas (por ejemplo, encabezados, pies de página) que se aplican a todas tus vistas.
    Ejemplo: erb
  • Colaboradores: Métodos de Ruby que simplifican la lógica compleja en las plantillas.
    Ejemplo: Ruby
    def format_date(date)
    date.strftime("%B %d, %Y")
    fin
  • Escapar HTML: Evita los ataques XSS mediante la depuración de los datos introducidos por el usuario.
    Ejemplo: erb
    <%= h(user_input) %>

Estas características hacen que ERB sea versátil y adecuado para una amplia variedad de casos de uso.

Casos de uso habituales de ERB

El ERB se utiliza habitualmente en situaciones como:

  • Páginas web dinámicas: Generación de contenido HTML a partir de la información introducida por el usuario o de consultas a la base 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 integrada.

Por ejemplo, podrías usar ERB para generar una lista de productos en una aplicación de comercio electrónico: erb


    <% @products.each do |product| %>
  • - $

  • <% end %>

Consejos para escribir plantillas ERB limpias

Para que tus plantillas ERB sean fáciles de mantener y eficientes, sigue estas prácticas recomendadas:

  • Reducir al mínimo el código Ruby en las plantillas: Traslada la lógica compleja a funciones auxiliares o controladores.
  • Usa plantillas parciales: Divide las plantillas grandes en componentes más pequeños y reutilizables.
  • Evita el anidamiento profundo: Mantén las condiciones y los bucles sencillos para mejorar la legibilidad.
  • Escapar la entrada del usuario: Desinfecta siempre los datos introducidos por el 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 control del usuario</p>
<% end %>

Podrías trasladar la lógica a una función auxiliar: ruby

def dashboard_message(user)
user.admin? ? "Panel de administración" : "Panel de usuario"
fin

Y simplifica la plantilla: erb

<p><%= dashboard_message(@user) %></p>

Ejemplo: Creación de una plantilla ERB sencilla

Veamos un ejemplo práctico de cómo crear y procesar una plantilla ERB:

Define un script de Ruby con datos: ruby

require 'erb'
@items = ['Manzana', 'Plátano', 'Cereza']

Crear una plantilla ERB: erb


    <% @items.each do |item| %>

  • <% end %>

Generar la plantilla: ruby

plantilla = ERB.new(File.read('plantilla.erb'))
pone template.result(binding)

El resultado será: html


  • Apple

  • Plátano

  • Cherry

ERB frente a otros motores de plantillas

Aunque ERB es sencillo y apto para principiantes, otros motores de plantillas como Haml, Slim y Liquid ofrecen diferentes ventajas:

  • Haml: utiliza una sintaxis basada en la sangría para crear plantillas más claras y concisas.
  • Slim: Similar a Haml, pero centrado en el minimalismo y el rendimiento.
  • Liquid: Diseñado para la creación de plantillas segura y aislada (por ejemplo, en Shopify).

El punto fuerte de ERB radica en su sencillez y en su perfecta integración con Ruby, lo que lo convierte en una excelente opción para principiantes y Desarrolladores de Rails.

Conclusión

Ruby Embedded (ERB) es una herramienta potente y sencilla que sirve de puente entre la lógica de Ruby y el HTML, lo que la convierte en una parte esencial del ecosistema de Ruby. Ya sea que estés creando páginas web dinámicas, diseñando plantillas de correo electrónico o generando archivos de configuración, ERB te ofrece la flexibilidad y la simplicidad necesarias para dar vida a tus ideas.

A medida que te adentras en Desarrollo en Ruby, dominar ERB te permitirá crear aplicaciones más dinámicas, fáciles de mantener y escalables. Entonces, ¿por qué no empiezas a experimentar con ERB hoy mismo? Crea un proyecto pequeño, modifica algunas plantillas y descubre cómo ERB puede transformar tu flujo de trabajo.