Creación de Modelos y Migraciones en Ruby on Rails

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

Resumen

¿Qué es un modelo en el contexto de Rails?

Los modelos en Rails representan una idea clave dentro del patrón de diseño MVC (Modelo-Vista-Controlador). Este patrón organiza el código en tres componentes principales, donde el modelo es fundamental para definir la estructura de datos y la lógica de negocio.

En Rails, un modelo es una representación de un objeto del mundo real o un concepto que debe ser gestionado y almacenado en una base de datos. Para ilustrar este concepto, supongamos un modelo simple denominado Pet. Este modelo podría tener atributos como name y breed, los cuales estarían reflejados en la tabla de base de datos correspondiente.

¿Cómo crear un modelo usando Rails Generate?

Rails proporciona una herramienta poderosa llamada rails generate que permite generar estructuras de código prediseñadas rápidamente. Para crear un modelo, utilizamos el siguiente comando:

rails generate model Pet name:string breed:string

Este comando creará dos archivos importantes:

  1. Archivo de migración: Ubicado en la carpeta db/migrate, este archivo define la creación de la tabla pets con sus atributos.
  2. Archivo del modelo: Creado en app/models, contiene la clase Pet que hereda de ApplicationRecord, integrando automáticamente capacidades para interactuar con la base de datos.

¿Cómo conectar el modelo con la base de datos?

Después de crear un modelo, es esencial reflejar estos cambios en la base de datos ejecutando el comando de migración:

rails db:migrate

Este proceso transforma el modelo Pet en una tabla de base de datos, asegurando que los datos se almacenen y se puedan consultar más tarde.

¿Cómo pasar información del modelo a las vistas?

Las variables de instancia se utilizan para entregar datos desde el controlador a las vistas en Rails. Para lograrlo, una variable de instancia puede ser inicializada en el controlador, y luego accedida en las vistas, como se muestra a continuación:

Dentro del controlador, se podría definir una variable de instancia:

@variable = "¿Cómo estás?"

Luego, modificar el archivo de vista hello.html.erb para incluir la variable de instancia:

<p><%= @variable %></p>

Este archivo debe tener la extensión .html.erb para permitir la interpolación de código Ruby dentro de llamadas de plantilla ERB.

¿Cómo integrar datos de la base de datos en las vistas?

Para enriquecer tus aplicaciones, puedes recuperar datos directamente desde la base de datos y renderizarlos en las vistas. Utilizando rails console, puedes crear instancias de tu modelo:

Pet.create(name: 'Lulu', breed: 'Poodle')

Para mostrar información específica en la vista, actualiza el controlador:

@variable = Pet.first.name

Así, la vista se actualizará para mostrar el nombre del primer registro del modelo Pet.

¿Cómo presentar datos más complejos en las vistas?

Para hacer la salida más descriptiva, puedes combinar múltiples atributos en la vista, creando una presentación personalizada de los registros:

@mascota = Pet.first
@variable = "Hola, soy #{@mascota.name} y soy un #{@mascota.breed}"

Esta lógica generará una salida como: "Hola, soy Lulu y soy un Poodle", proporcionando una presentación más atractiva y humana de los datos.

Con estos conceptos y comandos, tienes una base sólida para explorar y expandir la capacidad de tu aplicación Rails. ¡Explora la flexibilidad que te ofrece este poderoso framework y sigue profundizando en la organización y manipulación de datos!