Un modelo es una clase de Ruby que representa los datos que usamos en nuestra aplicación. Suele estar respaldado por una tabla en la base de datos (aunque no siempre). Para crear un modelo respaldado por una tabla en la base de datos tenemos que
- Crear la tabla en la base de datos mediante una migración,
- Crear el archivo del modelo.
El primer paso de crear la migración se hace ejecutando en el terminal el siguiente comando, que ejecuta un generador de Rails:
bin/rails generate migration AddTableUsers
donde AddTable es el nombre que le dimos a la migración pero puede cambiar. Este comando va a generar una migración que se va a almacenar en la capeta db/migrations y cuyo nombre será un timestamp seguido del nombre que le dimos en formato snake_case. Dentro de la migración tenemos que crear la tabla de la siguiente manera:
# db/migrate/timestamp_add_table_users.rb class AddTableUsers < ActiveRecord::Migration[6.0] def change create_table :users do |t| t.string :first_name, null: false, default: '' t.string :last_name, null: false, default: '' t.timestamps end end end
Esto nos va a generar una tabla llamada users con los campos first_name, last_name y además dos timestamps: created_at y updated_at. Para que se apliquen los cambios tenemos que ejecutar las migraciones:
bin/rails db:migrate
Luego, tenemos que generar el archivo del modelo. Para esto creamos el archivo app/models/user.rb y adentro definimos la clase User:
# app/models/user.rb class User < ApplicationRecord validates :first_name, presence: true validate :last_name, presence: true end
Con esto tenemos definido el modelo User y la respectiva tabla en la base de datos.