Migración de Plantillas ERB a Haml en Ruby on Rails

Clase 14 de 36Curso de Introducción a Ruby on Rails

Contenido del curso

Nuestra primera aplicación

Resumen

Escribir vistas en Ruby on Rails puede ser mucho más ágil si dejas atrás el sistema de plantillas tradicional y adoptas una alternativa diseñada para mejorar la legibilidad y la velocidad de escritura. Esa alternativa se llama Haml, y en esta guía aprenderás cómo instalarlo, configurarlo y hacer tu primera migración desde ERB sin romper nada en el camino.

¿Qué es Haml y por qué reemplaza a ERB?

Haml es un sistema de plantillas diseñado específicamente para HTML que elimina gran parte de la sintaxis repetitiva que caracteriza a ERB [0:41]. ERB, el motor de plantillas por defecto en Rails, permite insertar código Ruby dentro de las vistas mediante etiquetas especiales con corchetes triangulares (<%= %>). Funciona bien, pero a medida que las vistas crecen, el código se vuelve difícil de leer.

Con Haml la situación cambia radicalmente:

  • No necesitas cerrar etiquetas HTML manualmente.
  • La indentación define la estructura del documento.
  • Para mostrar variables de Ruby basta con usar el signo = sin corchetes triangulares [7:30].

Es importante destacar que el uso de Haml es completamente opcional [2:15]. Puedes probarlo y decidir si se adapta a tu flujo de trabajo o si prefieres continuar con ERB.

¿Cómo instalar Haml en un proyecto Rails?

La instalación se realiza a través de dos gemas que trabajan en conjunto. La primera es Hamlit, una versión optimizada de Haml que resuelve preocupaciones de rendimiento al minificar la arquitectura de renderización y consumir menos recursos [4:10]. La segunda es Hamlit Rails, que actúa como puente de conexión entre Hamlit y el framework Rails [5:32].

¿Dónde agregar las gemas en el Gemfile?

Abre el archivo Gemfile de tu proyecto y añade las siguientes líneas dentro del grupo development [5:48]:

ruby gem 'hamlit' gem 'hamlit-rails'

Una vez guardados los cambios, ejecuta el comando de instalación en la consola [6:10]:

bash bundle install

Este comando reconocerá las librerías nuevas y las adjuntará al proyecto. En la salida verás líneas en verde con el texto installing que confirman la instalación exitosa.

¿Es necesario reiniciar el servidor?

Sí. Después de instalar las gemas, debes detener el servidor con Ctrl + C y volver a iniciarlo con rails server [6:40]. Este paso es indispensable para que Rails cargue las nuevas dependencias.

¿Cómo migrar una vista de ERB a Haml?

El proceso de migración es sorprendentemente sencillo. Tomemos como ejemplo una vista llamada hello.html.erb ubicada en el directorio app/views/welcome/ [7:00]. Esta vista utilizaba dos variables de instancia: una proveniente del controlador y otra extraída directamente de las credenciales de Rails.

Los pasos para migrar son:

  • Cambiar la extensión del archivo de .erb a .haml usando la tecla F2 en el editor [7:18].
  • Eliminar los corchetes triangulares (<%= %>) que envolvían las expresiones Ruby.
  • Reemplazarlos por el signo = seguido de la variable.

El resultado es un archivo más limpio donde el código Ruby interactúa con las vistas de forma directa. Al verificar en el navegador accediendo al path /hola, el comportamiento permanece idéntico al que tenías con ERB [8:00]. No hay cambios visibles para el usuario final, lo que confirma que la migración fue exitosa.

Este concepto de transformación es similar al que se aplica en el procesamiento de assets [3:38]: Haml se convierte a HTML antes de llegar al cliente, igual que otros preprocesadores transforman su sintaxis al formato final que el navegador entiende.

Si ya conoces HTML, la transición será natural. Y si no lo dominas del todo, Haml te facilitará el trabajo al reducir la cantidad de etiquetas y cierres que necesitas escribir [1:55]. Comparte en los comentarios cómo ha sido tu experiencia con la migración y si planeas adoptar Haml en tus próximos proyectos.