Rails 3のActs_as_Paranoidのようなより良いバージョンはありますか?
-
28-10-2019 - |
質問
両方のソフト削除データベースからのレコードの両方が(実際に削除されているのではなく削除されているようにフラグを立てる)と...
...また、特別なユーザー定義のスコープを使用せずに、どのタイプのFINDがこれらのゴミ箱に及ぶレコードを自動的に省略します。たとえば、すべて宝石で行われます。
乾杯!
解決
Paper_trailをチェックアウトすることをお勧めします
他のヒント
DHHは、基本的に単なるモジュールミキシンである「懸念」でこれを行うことのファンであり、私はそのミニマリストのアプローチが好きです。
これがDHHのバージョンです - https://gist.github.com/1014971
これが私のバグフィックスバージョンです - https://gist.github.com/4032984
Paper_trailには多くの機能があり、よくテストされています(長い間存在しています)。
指定された機能のみが必要な場合は、次のことを確認してください。
パラノイア
パラノイア あからさまに才能のある宝石 レーダー あなたが探しているものです。
それは本質的に書き直しです acts_as_paranoid (そして同じ規則の多くを使用します)が、レール3と4と互換性が小さく、より速く、互換性があります。
それはあなたの両方のリクエストを達成します:
自動的に設定a
deleted_at
タイムスタンプadestroy
メソッドは、クラスが含まれるオブジェクトで呼び出されますacts_as_paranoid
.確実なクエリに条件を自動的に設定します
deleted_at IS NULL
, 、含めない限りwith_deleted
クエリチェーンで。
ライブラリやレーダーについて十分なことを言うことができませんでした。
ボーナス:彼のドキュメントは「ビジネス」で最高かもしれません。
捨てられた宝石を使用します。これは、ソフト削除レコードのための非常に簡単な方法です。https://www.rubydoc.info/gems/discard/1.0.0