Ruby
Rails
初心者

論理削除されたデータを検索する

paranoiaってgemを使ってるのだが、いっつも忘れるので、メモ

  • 論理削除されたデータも「含める」

    • Model.with_deleted
  • 論理削除されたデータのみ

    • Model.only_deleted

この後ろに普通にwhereとかができる

> User.with_deleted.find 2
=> #<ActiveRecord::Relation [#<User id: 2, code: "admin2", name: "管理者2">

> User.with_deleted.where(code: "admin")
=> #<ActiveRecord::Relation [#<User id: 1, code: "admin", name: "管理者">

論理削除されたデータをModel.restore!で戻せるらしいけど、リレーションとかどうなるんだろうかが良く分からなかった。

paranoiについては以下のサイトにめちゃくちゃ詳しく書かれています。ありがとうございます。
http://www.task-notes.com/entry/20170813/1502618254