2012-01-28 8 views
2

私はMongoid :: VersioningモジュールをMongoidベースのクラスに含めました。これまでの「バージョン」や文書の化身を確認する最も良い方法は何ですか?私はその歴史を見ることができるようにしたい。これは、rails consoleまたはMongoDBシェルのいずれかを使用できます。ドキュメントの履歴を表示する最も簡単な方法は何ですか?Mongoid :: Versioning - 以前のバージョンを確認するには?

答えて

7

Mongoid :: Versioningモジュールは、Integer型のversionという名前のフィールドをドキュメントに追加します。このフィールドには、現在のドキュメントのバージョンが1から最大(定義されている場合)まで記録されます。さらに、作成される埋め込みドキュメント「バージョン」も用意されています。あなたのバージョン管理を担当するbefore_saveコールバックがあります。

一般的に私は最大をお勧めしますが、それはあなた次第です。それらを取得する方法の面では、よくあなたは例のドキュメントを与え、それでは、例として、非常に簡単な記事で行かせませんでした:

:私たちはこのようなドキュメントに何かを与える
#Make an empty post, just a title, version 1 
post = Post.create(:title => "Hello World") 
# Now add some "content" and save, version 2 
post.content = "Woo - content" 
post.save 

{ 
    "title": "Hello World", 
    "content": "Woo - content", 
    "comments": [ 
    ] 
    "version": 2 
    "versions": [ 
    { "title": "Hello World", "version": 1 } 
    ] 
} 

は今、あなたはそれを得るためにあなたの標準的な検索メカニズムを使用する必要があります。

post = Post.find(:first, :conditions => {:title => "Hello World"}) 

は、そのうちの最新版を入手し、次にあなたがプログラムで、以前のバージョンを検索することができます。私は出力をポストしますが、私は現時点でサンプルを設定していません。

同様に、シェルを介して実行する場合は、タイトル、バージョンフィールドに基づいてdb.namespace.find()を実行する必要があります。

うまくいけばうまくいきます。

関連する問題