¿Qué es el andamiaje en Ruby on Rails?

Puede que estés aprendiendo Rails &y leas que tienes que crear un «andamiaje» para poner en marcha tu aplicación Rails…

¡Fácil!

Puedes hacerlo utilizando el comando rails g scaffold.

¿Pero qué es un andamio?

«El andamio es una estructura temporal que se utiliza para apoyar a un equipo de trabajo para ayudar en la construcción, mantenimiento y reparación de edificios, puentes y todas las demás estructuras hechas por el hombre.» – Wikipedia

Traducido a Rails:

Un andamio es un conjunto de archivos generados automáticamente que forman la estructura básica de un proyecto Rails.

Estos archivos incluyen:

  • Un controlador
  • Un modelo
  • Vistas para cada acción estándar del controlador (indexar, editar, mostrar, nuevo)

Una nueva ruta.

Y una migración para preparar su base de datos.

¡Veamos un ejemplo!

Cómo usar el comando Rails Scaffold

Un ejemplo de andamiaje de un proyecto para un sitio web sobre libros tendría este aspecto.

rails g scaffold books

Debería ver un montón de texto desplazándose, que detalla los archivos que se están creando.

Este ejemplo crea:

  • Un BooksController
  • Un modelo Book
  • Una nueva ruta resources :books añadida a su archivo config/routes.rb
  • Un conjunto de archivos relacionados con las pruebas
  • Ver archivos bajo app/views/books (cinco en total)

Sí.

Eso es un montón de cosas.

Si quieres deshacer este andamiaje, justo después de crearlo, puedes usar el siguiente comando.

rails d scaffold books

Donde «d» significa «destruir».

Tenga en cuenta que esto BORRARÁ los archivos creados por el proceso de andamiaje.

Ahora:

Antes de que puedas usar tu código de andamiaje tienes que ejecutar tus migraciones para actualizar el esquema de tu base de datos.

Usa el comando rails db:migrate.

Si no aparece ningún mensaje de error, ¡estás listo! Ya tienes una estructura básica para tu nueva aplicación Rails, o para una nueva función que necesita un nuevo modelo, vistas & y el correspondiente controlador.

Siguiente:

Ejecuta rails server.

¡Abre tu navegador para localhost:3000/books &y deberías poder ver los resultados!

Andamiaje de raíles con campos extra

Por defecto…

Tu modelo sólo recibe campos de marca de tiempo, lo que significa que la única información que puedes registrar sobre tus libros (o cualquier modelo con el que estés trabajando) es la hora a la que fueron creados, o actualizados.

Así es como se puede hacer un andamiaje con campos adicionales:

rails g scaffold books title:string author:string publication_year:integer

Si generas tu andamiaje así, tendrás 3 campos con los que trabajar.

Un título, un autor y un año de publicación.

Eso es un poco más interesante que tener sólo las marcas de tiempo de la base de datos.

Por cierto.

Esta es la misma sintaxis que usamos para crear migraciones con rails g migration.

Generación de componentes específicos

El andamiaje crea cosas que quizás no necesites o quieras ahora mismo.

Pero Rails es bonito.

Puedes crear componentes individuales, como los controladores, utilizando el comando rails g(g para generar).

Ejemplos:

  • rails g controller Fruit
  • rails g model Fruit name:string color:string (crea el modelo + la migración)
  • rails g migration CreateBook title:string year:integer (crea sólo la migración)

Una de las grandes ventajas de utilizar un comando de andamiaje es que todos los ficheros se crean utilizando las convenciones de nomenclatura correctas, lo que evita mensajes de error extraños. También le ahorra el trabajo de tener que crear manualmente estos archivos.

Por otra parte…

Se considera una buena práctica borrar los archivos autogenerados que no piensa utilizar. Así que después de usar un generador como «g controller», revisa la lista de archivos creados &elimina los que no necesites.

Resumen

Has aprendido sobre el andamiaje en Ruby para poder poner en marcha rápidamente una nueva aplicación Rails con la que practicar.

A medida que aprendas más puede que quieras dejar de lado el andamiaje.

Pero aún puedes generar controladores individuales, modelos o archivos de vista cuando los necesites.

¡Gracias por leer! 🙂

Deja una respuesta

Tu dirección de correo electrónico no será publicada.