Slide 11
Slide 11 text
2. バージョンの保持内容について
versions テーブルには、以下の情報が含まれる
:
| id | item_type | item_id | event | object | ...
|-----|-----------|---------|--------|------------------------------------------------------------------------------------|
| 1 | Article | 1 | create | null |
| 2 | Article | 1 | update | {"title": "First Post", "content": "Hello World!", "author": "Alice"} |
| 3 | Article | 1 | update | {"title": "First Post - Revised", "content": "Final revision.", "author": "Alice"} |
手法
: paper_trail
gem
item_type: 追跡対象モデルのクラス名
(polymorphic)
•
item_id: 追跡対象モデルの
ID(polymorphic)
•
event: 作成、更新、削除のイベント名
•
object: 変更前のオブジェクトの状態を
JSON形式
(または
YAML)で保存
•
object_changes: 各カラムがどのように変わったかを記録
•
11