Railsでは、レコードを削除するときに、そのような削除されたレコード用に別のテーブルを維持したいと思います(構造的には前者に類似しています)。
これを実現する1つの方法は、最初のモデルから構造、検証、および関連付けを明らかにコピーし、それを削除済みアイテムモデルに貼り付けることです。ただし、これは多くのコード冗長性をもたらし、スケーラブルなソリューションではありません。
多くの(またはまったく)コードの冗長性なしで、または上記のものよりスケーラブルである可能性のあるソリューションなしで、Railsでこれを達成する方法はありますか?
Ruby1.9.3-p125とRails3.2を使用しています。
アップデート
テーブルに追加のis_deleted
列を使用することを検討しましたが、このテーブルが大きくなりすぎて投稿が削除されて乱雑になることを望まなかったため、これに反対しました。私はこれらの削除された投稿に実際にアクセスするつもりはありません-これらは単に記録管理またはアーカイブの目的で保存されています。この列を追加すると、このテーブルへのアクセスが遅くなり、さらに重要なことに、モデルis_deleted == false
のにこのチェックを含めたとしても、SQL条件のチェックをどこかで見逃す可能性があります。default_scope