Creación de Scaffolds y Modelos en Rails con SimpleFrame y Bootstrap
Clase 20 de 36 • Curso de Introducción a Ruby on Rails
Resumen
¿Cómo construir scaffolds y trabajar con modelos en Rails?
¡Vamos a adentrarnos en el emocionante mundo de Rails y crear nuestros primeros scaffolds! Hoy construiremos los modelos de tarea y categoría, y los potenciaremos con un sistema de internación para sus vistas. Iniciaremos instalando las herramientas necesarias y luego procederemos con la creación de estos modelos. Sin más preámbulos, ¡vamos a ello!
¿Cómo preparamos el entorno?
Antes de comenzar a crear scaffolds, debemos preparar nuestro entorno frontend con SimpleFrame y Bootstrap:
-
Instalar el preset Bootstrap:
simpleframe 2.install --preset=bootstrapEsto genera el archivo
SimpleFrame Bootstrap, simplificando la integración de nuestras vistas con Bootstrap.
¿Cómo generamos los modelos de categoría y tarea?
Primero, vamos a crear el scaffold para el modelo categoría, ya que cada tarea pertenecerá a una categoría. El modelo categoría incluye una descripción y un nombre, que podemos definir como de tipo string. Sin embargo, podrías optar por text para la descripción si necesitas una longitud mayor.
- Generar scaffold para categoría:
rails generate scaffold Categoria nombre:string descripcion:string
Después, construiremos el scaffold para el modelo tarea, que también contiene un nombre, una descripción y una fecha de vencimiento. Además, cada tarea estará asociada a una categoría, lo cual implementaremos usando el tipo references.
- Generar scaffold para tarea:
rails generate scaffold Tarea nombre:string descripcion:string fecha_vencimiento:date categoria:references
¿Cómo migramos las tablas a la base de datos?
Para ejecutar nuestras migraciones, necesitamos ajustar nuestro acceso a la base de datos configurando PostgreSQL, ya que estamos usando este sistema en lugar de SQLite:
-
Configurar PostgreSQL:
- Edita el archivo
config/database.yaml. - En las secciones
developmentytest, configurahost,userypassword.
Ejemplo:
development: host: localhost user: platzi password: platzi - Edita el archivo
-
Ejecutar migraciones:
rails db:migrate
¿Cómo establecemos relaciones entre modelos?
El autogenerador de Rails crea una relación belongs_to entre tarea y categoría automáticamente. No obstante, para reflejar que una categoría puede tener muchas tareas, debemos modificar el modelo Category agregando has_many :tasks.
- Modificar el modelo Categoría:
- En
app/models/categoria.rb, añade:has_many :tareas
- En
¿Cómo anotamos nuestros modelos para mayor claridad?
Rails nos permite utilizar la gema annotate para documentar mejor los atributos y columnas de los modelos.
-
Instalar y utilizar annotate:
- Añade
gem 'annotate'al Gemfile. - Ejecuta:
bundle install annotate --models
Esto proporcionará información descriptiva sobre ambos modelos en sus respectivos archivos.
- Añade
¿Cómo corremos la aplicación y probamos el resultado?
Finalmente, podemos ejecutar nuestro servidor Rails y comprobar las funcionalidades creadas en nuestro navegador:
-
Iniciar el servidor:
rails server -
Acceder a nuestras rutas:
- Abre un navegador y visita
localhost:3000. - Usa las rutas
/tareasy/categoriaspara ver las listas de tareas y categorías.
- Abre un navegador y visita
Con todo esto, hemos establecido un sistema básico en Rails utilizando modelos bien estructurados e integraciones eficientes con Bootstrap. ¡Sigue explorando y aprendiendo para llegar a construir grandes proyectos en Rails!