2.6B - Setter la size a la creation

pull/1/head
Karim Bogtob 2 years ago
parent 40770d4240
commit 4ec1c1ce26

@ -70,4 +70,25 @@ Question 2.6 :
* Je génère la migration avec `rails g migration AddSizeColumnToCreatures size:integer`
* `rails db:migrate`
* `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.

@ -7,5 +7,14 @@ class Creature < ApplicationRecord
"#{name} (#{health_points})"
end
before_create do
self.size = case health_points
when 0..10
:small
when 11..30
:big
else
:giant
end
end
end

Loading…
Cancel
Save