16

モデルのバージョン管理を可能にするプラグイン/行為を探しています。利用可能なソリューションのリストを見つけるのはちょっと難しいです。これまでのところ、私は集めました:

  • acts_as_versioned
  • simply_versioned
  • vestal_versions

最後の 2 つのソリューションでは、バージョン テーブルが 1 つしか必要ありません。これは良さそうに聞こえますが、移行の容易さがこれによってどのように影響を受けるかについては、悪い予感がします (状態を文字列としてシリアル化するため)。

一方でacts_as_versioned、少しほこりっぽいです (1 月の最後のコミット)。これらのいずれかに関する最近の経験はありますか? または、私が見落としていた可能性のある他のソリューション (またはフォーク) はありますか?

4

6 に答える 6

21

「paper_trail」と呼ばれる宝石を使用してきました。現時点では、オンラインでの最適なソリューションのようです。監査とバージョン管理が 1 つにまとめられています。

http://github.com/airblade/paper_trail

お役に立てれば!

于 2009-11-09T10:03:03.363 に答える
4

私はvestal_versions先週作業しましたが、少なくともスペースの点では、これは最も高度な代替手段です。本当に必要なものだけを保存します. これはアクティブなプロジェクトであり、バージョン 1.0 は多くの新機能を備えた大幅なアップデートになる予定です。1.0 ブランチを見るだけで、私の言いたいことがわかります。

しかし、少しいじってみると、大きな欠点があることに気付きました。それは、パフォーマンスです。特定のバージョンが必要になるたびに、中間バージョンをすべて調べて、必要なバージョンを再構築する必要があります。これは、バージョンを直接編集または削除できないことも意味します。これは、変更が混乱してチェーンが壊れる可能性があるためです。これを行うには、バージョンを適切に処理する必要がありますが、vestal_versions現在はそうではありません。

このようにして、私が抱えていた問題に対して、独自のバージョン管理ソリューションになりました。パフォーマンスと、バージョンを迅速に削除および編集する機能が必要だったので、ストレージを犠牲にして に似たものを開発しましたact_as_versioned

ただし、これが必要なく、頻繁に元に戻す必要がない場合は、 を強くお勧めしvestal_versionsます。これは、情熱的な開発者が背後にいる、高度で堅実なソリューションであり、アクティブなソリューションです。

于 2009-11-08T23:11:25.230 に答える
2

数か月前、いくつかのソリューションをテストしましたvestal_versionsが、最も効果的でした。Ryan Batesによる素晴らしいスクリーンキャストもあります。

他の代替手段を探している場合は、Ruby ツールボックス リストを参照してください。

于 2009-11-08T18:44:05.943 に答える
2

プロジェクトでacts_as_auditedを使用し、かなりの成功を収めました。

http://github.com/collectiveidea/acts_as_audited/で見つけることができます

(11月の最後のコミット:-))

于 2009-11-08T19:39:53.937 に答える
1

もう 1 つのプラグインは paper_trail です。今日投稿されたレールキャストへのリンクは次のとおりです。

http://railscasts.com/episodes/255-undo-with-paper-trail

彼はまた、vestal_versions より paper_trail を好む理由についても言及しています。

于 2011-02-28T20:31:37.893 に答える
0

ねえ、バージョン管理をサポートする方法として、データベースのバックエンド INSTEAD で Perforce や GitHub などを使用することを考えた人はいますか? したがって、基本的にはファイルベースのデータ取得になると思います...

于 2011-01-21T12:58:53.077 に答える