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…
Reference in new issue