2009-06-09 11 views
2

私が持っているものがすべて1つのモデル(例えばWiki)でバージョンとともに保存したいのであれば、 "wikis"テーブルのウィキとそのバージョンを "wikis_versions"テーブルに格納するacts_as_versionedプラグインを使用できます。これは、「保留中のレビュー/公開」のステータスとしてフィールドを使用して公開する前に、最新のバージョンをモデレートしたい場合でも、単純です。ActiveRecordモデルとバージョンとの関連付けを保存する最も良い方法は何ですか?

バージョンを持っているアソシエーション(アタッチメント、アセットなど)でWikiを処理するには、どのような方法が最適ですか?そして、あなたはそれをどのように緩和しますか?ウィキに新しいバージョンを作成しても、関連付けだけが変更されてもフローを維持できますか?そうであれば、他のアソシエーションはどうですか?

ほとんどのDBオーバーヘッドでそれを処理する最善の方法は何ですか?

ありがとうございます。

答えて

1

私は両方acts_as_versionedとacts_as_auditedを使用しています。

私は後者のほうが1つのテーブルを使用しているので、後者の方が好きです。 acts_as_versionedを使用すると、余分な移行を必要とするバージョン管理されたテーブルの変更に問題が発生しました。=>これにより、ビルドプロセスと展開プロセスが複雑になります。

+0

@Toby: 私はacts_as_auditedを調べましたが、それを公に公開する前にリビジョンをモデレートする必要がありましたか?もしそうなら、どのようにモデレートを処理しましたか?私が見る限り、acts_as_auditedはすぐにメインテーブルを変更し、その変更を監査されたテーブルに保存します。私が望むのは、変更がモデレートされ、バックエンドのモデレーターが変更を承認したときにのみ元のレコードを変更するまで、元のレコードをそのまま維持する方法です。あなたはそのような種類のシステムを使用しましたか? – Dharam

+0

あなたの要件を満たすためにこれらのプラグインの1つをおそらく適応させることができます。バージョンが記録されるときに変更する必要があります。ポストモデレーションを行うので、バージョンは追跡されますが、モデレータは適切な場合には元に戻すか編集することができます。 –

+0

あなたはacts_as_auditedを使用していると言っていますが、司会者が適切な場合は元に戻したり編集したりすることができるようにモデレートしています。コードを勉強している間は、復帰オプションはありません。必要に応じてacts_as_auditedをカスタマイズすることになりましたか?もしそうなら、モデレートを扱うビットを投稿しますか?前もって感謝します。 – Dharam

0

Richard Livseyにはacts_as_versionedで動作する素晴らしいプラグインがあります。

http://github.com/rlivsey/acts_as_versioned_association/tree/master

+0

実際にacts_as_versionedに依存するacts_as_versioned_associationを調べました。また、acts_as_versioned_associationは、レール2.3.2に移植されておらず、acts_as_versioned_associationとの互換性がないrails 2.3.2に既に移植されているため、失敗しています。フィードバックをお寄せいただきありがとうございます。 – Dharam

関連する問題