6

Ruby on Railsを使用して StackOverflow の質問の改訂履歴と同じシステムを実装する場合、それを達成するために何をする必要がありますか? ユーザーが投稿したコンテンツを他の人が更新できる wiki のように機能するサイトを作成しています。これらの変更の履歴を追跡できるようにする必要がありますが、これを実装する方法に精通していません。

解決:

簡単に言えば、これが機能する方法は、変更を追跡するために追加のテーブルを作成することです。テーブルの各行には、レコードが変更される前に存在していたデータ (または変更されたデータのみ) の「スナップショット」があります。

ほとんどの作業をすでに完了している Ruby Gem がいくつかあります。これは、バージョン管理/リビジョン履歴を扱う gemのリストです。Paper Trailは現在、これを行うための最も人気のある gem のようです。Ryan Bates が RailsCast を記録し、Paper Trail の使用方法の概要を説明しています。

4

2 に答える 2

3

エントリを編集するときは、(古い) エントリを削除せず、新しいバージョン番号を持つ新しいエントリを追加するだけです。表示するエントリを取得する場合は、バージョン番号が最も大きいエントリを選択します。エントリを取得してその改訂履歴を表示する場合は、それらすべてを選択して、バージョン番号で並べ替えます。

于 2010-09-30T17:29:21.093 に答える