- 実際に選定してみた際に悩んだので、記事化
この記事の内容
- Railsのgemの
Audited
とPaperTrail
とは -
Audited
とPaperTrail
の違い - おすすめのユースケース
Audited
とPaperTrail
とは
- データの変更履歴やバージョンを管理するためのパッケージ
- 誰がどのレコードをどのように変更したかの履歴を自動的に保存してくれる
- 必要になるユースケースとしては、以下のような場合がある
- プロフィールなど、変更記録を含めた検索をしたい
- qitaの記事など、一回の編集量が多いデータの履歴を管理したい
- 誰が変更したかが重要なデータ
- 特にお金が関わる時!
- ↓がソース!
Audited
とPaperTrail
の比較
Audited
のメリット
- 誰が変更したかをテーブル単位でデータが取れる
- ログインできるモデルが複数ある場合に有効
- UserテーブルとAdminテーブルで切り分けているなど
- 誰が変更したかはリレーションだけではなく、文字列でも残せる
- ログインできるモデルが複数ある場合に有効
- 変更のBeforeとAfterが1レコードになる
- 変更内容の監視が可能
- DBから変更記録を追う際に、便利
- 変更時にコメントを残せる
- 変更リクエストのIPアドレスを自動で取得する
PaperTrail
のメリット
- バージョン管理がしやすい
- 〇〇日に変更した内容などの記録が楽
- モデルごとにバージョン管理用のテーブルが作れる
- パッケージに、全変更履歴を取るためのメソッドが用意されている
- 最新3バージョンまで保持するなどの管理がしやすい
- DBに入る実際の値をカスタマイズしやすい
- get startedにカスタマイズ方法が記載されている
結論
-
PaperTrail
はバージョン管理に特化している- diffを見る
- 〇〇日のバージョンを戻す、など
-
Audited
は監査用のログを管理する用途に特化している- 誰が〇〇日にどのデータをどのように変更したか、など
オススメのユースケース
-
PaperTrail
にオススメ- 履歴を含めた検索をしたい場合
- ユーザーがデータのバージョンを確認したい場合
-
Audited
にオススメ- 変更履歴を管理したい場合