20 de marzo de 2020 542 lecturas

El andamiaje en Ruby on Rails se refiere a la autogeneración de un conjunto de un modelo, vistas y un controlador que normalmente se utiliza para una sola tabla de base de datos.

Por ejemplo, puedes autogenerar un controlador, un modelo y unas vistas listas para usar con una interfaz web CRUD (Create, Read, Update, Delete) completa para la tabla Story usando el siguiente comando:

$rails generate scaffold Story title:string content:text

Es mucho más fácil hacer esto, en lugar de codificar todo tú mismo, ¡te ahorra mucho tiempo!

¿Andamio o modelos?

Comparado con el andamio que genera todo lo que necesitas (y no necesitas), los modelos crean sólo algunos componentes relacionados. La mejor manera, y mi favorita, de explicar la diferencia entre scaffold y modelos es utilizando el siguiente ejemplo:

Generar modelos

Una vez que introduzca el comando

$rails generate model Story title:string content:text

generará:

invocar active_record vinculará su modelo a la base de datos, mientras que la siguiente línea crea un archivo de migración. Las migraciones se utilizan para alterar el esquema de su base de datos. Este archivo de migración crea la tabla de la base de datos llamada ‘stories’, y las columnas de la base de datos para «title» y «content».

La tercera línea creará un modelo – una clase Ruby que hereda el Active Record. Con esto, cada método que puede ser llamado en Active Record ahora puede ser llamado en su modelo. Las últimas tres líneas crean archivos de prueba relacionados con tu modelo.

Aunque el andamiaje te permitirá ponerte en marcha rápidamente, es poco probable que el código que genera se adapte perfectamente a tu aplicación. Lo más probable es que quieras personalizar el código generado. Muchos desarrolladores experimentados de Rails evitan por completo el andamiaje y prefieren escribir todo o la mayor parte de su código fuente desde cero. Puedes leer más sobre esto en RailsGuides.

Como puedes ver, generar modelos no crea ningún tipo de vista para mostrar información en una página. Para tener una aplicación completa y lista para usar, necesitaríamos:

  • generar controladores (que a su vez genera también vistas) o
  • generar scaffold (que genera tu modelo, vistas, controlador y escribe en tu fichero routes.rb).

Si cambias de opinión y decides usar scaffold después de haber generado ya el modelo, siempre puedes ejecutar

$rails generate scaffold <name>

Se crearán todos los archivos que faltan.

Generar scaffold

Si introduces el comando

$rails generate scaffold Story title:string content:text

generarás los siguientes archivos:

Una vez creadas las pruebas relacionadas con el modelo, la siguiente línea generará las rutas de recursos a tus historias. Después de generar las rutas de recursos viene el controlador y sus acciones (index, show, new, edit, create, update y destroy), junto con las vistas y los tests del controlador para cada una de estas acciones.

El router de Rails reconoce las URLs y las conecta con la acción de un controlador. Por defecto, la acción de un controlador renderizará una vista del mismo nombre.

Migración

Cada vez que se crea una migración utilizando scripts (generar modelo/generar andamio) se añade una nueva migración al directorio correcto. Se utiliza

$rake db:migrate

para comprobar qué migraciones no se han añadido a la base de datos.

Destruir

Todo el mundo es libre de editar y hacer los cambios necesarios en su aplicación para que funcione como se pretende, incluso si esto significa eliminar completamente el scaffold. Usted puede eliminar el andamio de la siguiente manera:

  1. Generar andamio:
    $rails generate scaffold Story
  2. Si migraste tus archivos, realiza un rollback:
    $rake db:rollback
  3. Destruir o deshacer el andamio:
    $rails destroy scaffold Story

Al hacer esto, eliminarás todos los archivos creados por el scaffold pero los cambios adicionales que puedas haber hecho manualmente no se eliminarán.

Conclusión

Un scaffold es excelente para usar cuando se trata de ejemplos simples, maquetas rápidas o pruebas. Sin embargo, asegúrate de generar tus propios modelos cuando decidas desarrollar una nueva aplicación. No olvides probar siempre tu aplicación, ¡descubre cómo hacerlo usando Capybara!

¡Esperamos que hayas descubierto algo nuevo hoy!

Publicado anteriormente en https://kolosek.com/rails-scaffold/

Etiquetas

Únete a Hacker Noon

Crea tu cuenta gratuita para desbloquear tu experiencia de lectura personalizada.

Deja una respuesta

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