Railsで論理削除をするacts_as_paranoidを試してみた2015-01-04Railsで論理削除をするacts_as_paranoidを試してみたRuby論理削除を実現してくれるgem、acts_as_paranoidを試してみました。'acts_as_paranoid'しかしWEBrickを起動しようとすると下記エラー。rails4系に対応してない模様。これで無事にWEBrickが起動してくれるようになりました。'ActsAsParanoid/acts_as_paranoid'設定acts_as_paranoidを使う設定は下の2ステップになります。論理削除をしたいテーブルにdeleted_atカラムを追加する。以下のように論理削除したいテーブルでacts_as_paranoidを呼び出す。具体的なacts_as_paranoidの挙動は下記の通りです。destroy_allを試してみましたが、全て物理削除からdeleted_atに現在時刻を入れる挙動に変わっていました。last等、検索をかける際は全てdeleted_atがnullのものを取得する挙動に変わっていました。13:48:36">]>コードを見たところdefault_scopeを使っているようです。削除されたレコードを取得するonly_deletedや削除済も未削除も全て取るwith_deletedが追加されています。あとは削除時間を元に取得するdeleted_after_timeやdeleted_before_timeもありました。デフォルトスコープが効いているため、with_deletedと併用しないと取ってこれないようです。削除されたものを復活する為のrecoverメソッドが追加されています。あとrecover時に呼ばれるコールバックのbefore_recoverとafter_recoverも追加されています。その他ドキュメントを読んだ所、削除情報はDatetime型でなくString型やBoolean型で持つ事もできるようです。まとめ取得や削除を置き換えてくれるので使う側で意識する点が少ない所が良さそうです。関連テーブルの挙動とかも機会あれば追いかけてみようと思います。Extensionでウィジェット作成SwiftUIを触ってみるGoogleのデータポータル(旧DataStudio)でアプリの新規ユーザーをグラフ化FirebaseのデータをBigQueryに入れて分析する月別アーカイブスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。