OSS探訪GitHubでログイン

ActiveRecord modelの変更履歴をversion recordとして保存し、監査・復元・差分確認に使う

スコアの見方

OSS規模スコアはStars・Watchers・Forks・Contributorsを対数圧縮して重み付けした現在の規模指標(上限なし)です。発掘スコアは現在のOSS規模スコアから発掘時点のOSS規模スコアを引いた値、更新ペースは直近30日Commit数、成長モメンタムは直近の観測期間におけるOSS規模スコア差、OSS健全度は取得できた更新状況・Community Health・Releaseの0〜100評価です。

Stars
7,030
主要言語
Ruby
ライセンス
MIT
リポジトリ最終更新
2026/09/25
ページ内ナビ

概要

PaperTrailはRails/ActiveRecord modelの変更を追跡するversioning/auditing libraryです。has_paper_trailをmodelへ追加するとcreate/update/destroy等のeventをversion tableへ記録し、過去状態のreify、変更内容の参照、操作者情報の記録に使えます。現在のversionは17.0.0です。

特徴と向いている用途

公式資料に基づく紹介・実機未検証 · 内容確認日:

主な特徴

model eventごとにversionを保存し過去状態をreifyする

ActiveRecord modelへhas_paper_trailを設定すると変更前後の状態やeventをversion recordとして残せます。versionから過去のmodel状態をreifyし、削除済みrecordの復元や監査履歴の表示に利用できます。

出典:[2]

変更attribute・metadata・whodunnitを監査情報として持たせる

object/object_changesやmetadataを使って何が変わったかを記録し、request単位のwhodunnitで操作者を関連付けられます。version classやversions tableをapplication要件に合わせてcustomizeする構成も可能です。

出典:[2][5]

向いている用途

業務データの監査ログ・変更履歴・undo機能が必要なRails applicationに向く

管理画面や業務systemで誰が何を変更したかを追跡したい場合、設定変更の履歴を表示したい場合、以前の状態へ戻す機能を作りたい場合に適します。

出典:[2]

導入前の確認

17.0.0はRuby 3.2+。履歴tableの容量・機密情報・serializer互換性を運用設計に含める

17.0.0はRuby 3.2以上を要求し、Rails 6.1/7.0 supportを終了してRails 8.1を追加しています。version tableは更新量に比例して増えるためretention/index設計が必要です。また履歴には変更前の値が残るためpassword/token/個人情報等を記録対象から除外し、YAML/JSON serializerやschema変更時の互換性も確認してください。

出典:[4][5][2]

参考にした公式資料

  1. [1]paper-trail-gem/paper_trail — GitHub repository(2026-10-06)
  2. [2]PaperTrail — README(2026-10-06)
  3. [3]PaperTrail — version source(2026-10-06)
  4. [4]PaperTrail — paper_trail.gemspec(2026-10-06)
  5. [5]PaperTrail — CHANGELOG(2026-10-06)
  6. [6]PaperTrail — MIT License(2026-10-06)
編集部からの補足

監査要件があるRails applicationで導入しやすい一方、version tableは増え続けます。retention/index、機密attribute除外、serializer/schema互換性まで含めて設計してください。

3ステップで試す

  1. 1

    ソースを取得

    git clone --depth 1 https://github.com/paper-trail-gem/paper_trail.git
  2. 2

    リポジトリへ移動

    cd paper_trail
  3. 3

    公式手順を確認

    READMEのInstallation / Quick Start / Getting Startedにある公式コマンドを続けて実行してください。

    find . -maxdepth 1 -iname 'README*' -exec sed -n '1,220p' {} \; -quit
公式READMEで確認

成長

成長の推移 · 直近30日

7,030 Stars

推移データを蓄積中です。

開発アクティビティ

直近90日・週次

Commit(直近30日)
2
Open PR
4

開発アクティビティを蓄積中です。

Built with

カテゴリとタグ

GitHubデータ

GitHubのデータGitHubの詳細データを見る

GitHub Topics

  • ruby
  • activerecord
  • audit
  • log
  • rails
Stars
7,030
Forks
908
Watchers
61
Open Issues
5
Contributors
218
所有者種別
Organization
主要言語
Ruby
ライセンス
MIT
リポジトリ最終更新
2026/09/25

このOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。

情報の誤りを報告

掲載内容に誤りや古い情報があればお知らせください。

このページを読んで、次に何をすればよいか分かりましたか?