You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
correction-tp-rails/README.md

95 lines
2.9 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# README
Commandes lancées :
Question 2.2 :
* `rails server`
Question 2.3 :
* `rails generate controller HomeController`
Question 3 :
* `rails generate model Creature name:string health_points:integer`
* La migration n'est pas lancée sur la base
* `rails db:migrate`
Question 3.1 :
Je teste la creature dans une console rails que je lance avec `rails console` :
```ruby
rails console
Loading development environment (Rails 7.0.4.3)
irb(main):001:0> c = Creature.create(name: "Thrall", health_points: 489)
TRANSACTION (0.1ms) begin transaction
Creature Create (0.4ms) INSERT INTO "creatures" ("name", "health_points", "created_at", "updated_at") VALUES (?, ?, ?, ?) [["name", "Thrall"], ["health_points", 489], ["created_at", "2023-03-26 13:19:57.492017"], ["updated_at", "2023-03-26 13:19:57.492017"]]
TRANSACTION (0.9ms) commit transaction
=>
#<Creature:0x00000001070374f8
...
irb(main):002:0> c.to_label
=> "Thrall (489)"
```
Question 3.2 :
* `bundle add random_name_generator` pour ajouter la gemme au gemfile, effectuer la résolution de dépendance et installer la nouvelle gemme
* `rails db:seed`
## TP4
Question 2.5 :
* J'ajoute une créature avec des PVs à 0 :
```ruby
rails console
Loading development environment (Rails 7.0.4.3)
irb(main):001:0> Creature.create(name: 'Zombie', health_points: 0)
TRANSACTION (0.1ms) begin transaction
Creature Create (0.4ms) INSERT INTO "creatures" ("name", "health_points", "created_at", "updated_at") VALUES (?, ?, ?, ?) [["name", "Zombie"], ["health_points", 0], ["created_at", "2023-03-26 14:00:56.413028"], ["updated_at", "2023-03-26 14:00:56.413028"]]
TRANSACTION (0.9ms) commit transaction
=>
#<Creature:0x00000001104b9310
id: 27,
name: "Zombie",
health_points: 0,
created_at: Sun, 26 Mar 2023 14:00:56.413028000 UTC +00:00,
updated_at: Sun, 26 Mar 2023 14:00:56.413028000 UTC +00:00>
```
* J'essaie de renommer la créature dans postman et je vérifie que son nom ne change pas
* J'ai bien une 404 et son nom n'a pas changé
Question 2.6 :
* Je génère la migration avec `rails g migration AddSizeColumnToCreatures size:integer`
* `rails db:migrate`
* J'ajoute le callback comme dans le sujet du TP pour setter la size à la création, je teste en console :
```ruby
irb(main):001:0> Creature.create(name: 'Big Chongus', health_points: 25)
TRANSACTION (0.1ms) begin transaction
Creature Create (0.4ms) INSERT INTO "creatures" ("name", "health_points", "created_at", "updated_at", "size") VALUES (?, ?, ?, ?, ?) [["name", "Big Chongus"], ["health_points", 35], ["created_at", "2023-03-26 14:07:03.876318"], ["updated_at", "2023-03-26 14:07:03.876318"], ["size", 2]]
TRANSACTION (0.6ms) commit transaction
=>
#<Creature:0x0000000109a96d70
id: 28,
name: "Big Chongus",
health_points: 25,
created_at: Sun, 26 Mar 2023 14:07:03.876318000 UTC +00:00,
updated_at: Sun, 26 Mar 2023 14:07:03.876318000 UTC +00:00,
size: "big">
```
Toutes les créatures crées auront dorénavant une taille.