2.0 KiB
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é : lesStrongParams
- 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 :
rails g model Creature name:string health_points:integer
rails db:migrate
Params, où sont mes params ?
-
Rappel sur les params
-
Rappel API JSON
-
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.