0

Railsアプリでvestal_versionsジェムを使用することに興味がありますが、新しいバージョンを作成する方法があるかどうかを誰かが知っているかどうか疑問に思っていますが、関連するActiveRecordを実際に更新することはできません.

たとえば、名前が「jim」のユーザーがいて、名前が「steve」の新しいバージョンを作成した場合、後で必要になるまで、親レコードを変更せずにバージョンを永続化できるようにする必要があります。時間 (revert_to!(newer_version) などを使用)。

これがgemに組み込まれていない場合、パッチをどこから始めるべきかの手がかりはありますか?

4

1 に答える 1

0

この gem の動作を調査した結果、vestal_versions が実際に行うように設定されているものではないことがわかりました。

次のような方法でこの動作を強制できます。

def create_version
  merge_version_changes
  create_version
end

「バージョン管理された」モデルでは、親オブジェクトのテーブルを変更せずに、ライブ ActiveRecord に加えた変更を含む新しいバージョンを作成します。

blah = Blah.first
blah.version

最新バージョンを使用していることがわかりますが、そのデータはロードされません (変更されていないため)。使用する場合:

blah.revert_to(:last)

すでに最新バージョンを使用していると見なされるため、記録は変更されません。等..

簡単に言うと、vestal_versions はこの種の動作を持つことを意図しておらず、そうすることが期待されるべきではありません。私が探しているものに近いように見えるので、現在 has_drafts gem を調査しています。

于 2013-03-22T18:47:34.233 に答える