Añadir la condiguración de devise:
Crear los archivos de migración junto con el modelo de User de Devise:
La aplicación debe contar con una landing page estática que muestre el nombre de la
empresa “Inmobiliaria Virtual” con un diseño atractivo. Desde ahí puedo ir a ver tanto el
listado de edificios como el de departamentos.
Visitamos http://localhost:3000/
Para que los links funcionen, debemos crear los modelos como se explica la sección de Creando los modelos
Ya tenemos entonces la navegación ahora trabajaremos en la vista index del home, que es nuestra landing page, podemos crear un partial para crear un hero como primera opción:
Por otro lado podemos, crear un simple array con url de imagenes desde el controlador y mostrarlas en un carrusel de bootstrap:
De momento se necesitan dos modelos principales y dos modelos adicionales que debes descubrir en las indicaciones posteriores. Los modelos principales son:
Crear el modelo Building (edificio):
Crear el modelo Apartment (departamento):
Nos piden que la aplicación debe contar con un sistema de autenticación con 3 tipos de roles.
Para ello vamos a crear una nueva migración para añadir un campo rol a los usuarios y que sea de tipo entero:
Revisar el archivo de migración generado y luego añadir lo siguiente para que los usuarios existentes se les asigne el rol 0 (que será equivalente a un usuario normal) y a los futuros usuarios creados:
Ahora ejecutamos la migración:
De manera opcional podemos conectarnos a postgres y validarlo por medio de una query:
Ahora en nuestro modelo User, necesitamos definir la enumeración de la siguiente forma:
El edificio debe contar con la información de en qué ciudad está ubicado. Para esto necesitamos crear otro modelo de la siguiente manera:
Y debemos relacionarlo con edificio como se ve a continuación:
Para añadir la clave foránea mediante la migración de Rails, lo hacemos con:
Lo que nos daría como resultado un nuevo archivo de migración con el siguiente contenido:
Y ejecutamos la migración con rails db:migrate
.
El edificio debe contar con al menos 10 ciudades, las cuales deben cargarse por medio de un archivo CSV al ejecutar el seed:
El contenido del archivo seeds
El contenido del archivo ciudades.csv:
Tambien nos pides saber si un departamento se encuentra o no disponible. Esto se debe lograr utilizando una columna estado. Para ello agregamos un nuevo campo al modelo Apartment por medio de la migración:
Y no nos olvidemos de agregar en el archivo de migración el valor por defecto para los registros existentes:
Y ahora en modelo de Apartment definir el status por medio de un enum:
Usuarios
Pueden ver las páginas de index y show de los edificios
Conserjes
El conserje puede acceder tanto a edificios como departamentos y solamente editar la información de los modelos (building y apartment).
Admin
El admin puede realizar todas las acciones del crud en ambos modelos (building y apartments).
CRUD PARA BUILDING
En el index de building, se listarán todos los edificios en una tabla con sus datos respectivos
Para building vamos a tener el siguiente controlador:
Configurar las rutas de building usando resources:
CRUD PARA APARTMENT