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=bootstrap
Esto 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
development
ytest
, configurahost
,user
ypassword
.
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
/tareas
y/categorias
para 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!