Familiarizarse con los modelos: validaciones, asociaciones y migraciones.
- Las tablas ya existen y tienen datos
- Usar
reload!
en la consola de rails para aplicar cualquier cambio hecho en el código fuente
Ver la sección preparar repositorio
Parte 1 - Validaciones
- Definir manualmente los modelos para las tablas
monsters
,victims
yattacks
. - ¿Cuántos monstruos hay en la base de datos? (usar la consola de rails)
- Definir una validación para que el nombre de los monstruos y las víctimas sea obligatorio.
- Definir una validación para que el nombre de los monstruos no se puedan repetir entre monstruos.
- Definir una validación custom para que los monstruos con un nivel de susto superior a 5 no puedan tener víctimas menores de 18 años.
- [rails console] Probar que todas validaciones funcionen como se esperan.
- Hacer un commit con todos los cambios realizados y pushear el commit al repositorio forkeado.
Parte 2 - Asociaciones
- Definir las asociaciones necesarias para que un monstruo pueda tener muchas víctimas. Es necesario considerar el modelo de ataques.
- [rails console] Crear una nueva víctima y asociarla a un monstruo
- [rails console] Obtener todas las víctimas de Nahuelito
- [rails console] Obtener todas las víctimas de Nahuelito ordenadas alfabéticamente por su nombre
- Actualizar los modelos para los monstruos y las víctimas de tal manera que cuando se elimine algún monstruo o víctima, todos sus ataques se eliminen.
- Hacer un commit con todos los cambios realizados y pushear el commit al repositorio forkeado.
Parte 3 - Migraciones
- Crear un nuevo modelo para modelar los tweets de un monstruo. El tweet debe estar asociado a un monstruo y debe tener el contenido en texto del tweet.
- Asegurarse de incluir la migración necesaria para crear la tabla
tweets
- Correr la migración y crear 3 tweets para 3 monstruos distintos
- Asegurarse de incluir la migración necesaria para crear la tabla
- Agregar nueva información a la tabla de monstruos:
- Una columna para permitirle al monstruo configurar su cuenta como privada, para que sus tweets no sean visibles públicamente.
- Una columna para guardar la fecha de nacimiento del monstruo.
- Correr la(s) migración(es) y actualizar los monstruos existentes para que tengan información en las nuevas columnas.