Ajout du plan

kbogtob/add-tp-5
Karim Bogtob 2 years ago
parent b24d130e13
commit 362b50ea91

@ -0,0 +1,83 @@
--
layout: post
title: "TP4 de web ruby - Gladiator"
categories: ruby-2a
---
# Gladiator
Ce TP a pour but de vous faire créer une API JSON Rails et de vous familiariser avec :
* La gestion des paramètres (`params`)
* La découverte d'un nouveau concept de `params` validé : les `StrongParams`
* Pratiquer les migrations
* Utiliser des scopes
* Comment écrire une API avec Rails
## Repartir du TP précédent ou repartir de zéro
Vous pouvez repartir du TP précédent, c'est du travail de gagné sur ce TP et vous pourrez modifier la vue du welcome (`/`) pour ajouter du détail sur les créatures au fur et à mesure.
Pensez à modifier `to_label` si c'est le cas.
Si vous repartez de zéro, n'oubliez pas d'ajouter le modèle créature avec les commande suivantes :
```ruby
rails g model Creature name:string health_points:integer
rails db:migrate
```
## Params, où sont mes params ?
1. Rappel sur les params
2. Rappel API JSON
3. Explications des strong params
## Fais rouler les dés
Contrôleur DiceRollsController
Créer un diceroll => Ça retourne les jetés de dés, on peut lancer qu'un d2, d4, d6, d8, d10, d20, d100
ça retourne le jet de dés (paramètre facultatif pour le nombre de lancer)
`$render $params`
## Ajout d'un CRUD de créature
### CRUD
`$strong_params`
On supportera uniquement le renommage
### Scoping aux créatures vivantes
nommer le scope `encore_vivants` en se basant sur pv > 0
Supporter le renommage que des créatures vivantes
### Ajout d'un enum vivant
migration + màj des données
nommer l'enum status
utiliser le scope `alives`
## Ajout d'une nouvelle ressource Combat
Ajouter une ressource combat où on fait combattre deux créatures
pour le combat, les créatures se soutraient mutuellement leurs PVs 1 fois
foreign_key `winner_id`, `loser_id`
le résultat du combat doit être écrit dans la resource combat (death ou draw, utiliser un enum)
FK, index, s'assurer qu'une créature ne se combat pas elle même
## Rechercher des combats
On veut pouvoir rechercher un combat par nom de créature et par résultat.
Loading…
Cancel
Save