データ論理削除用GEM rails3_act_as_paranoid 導入手順
Gemfileに以下を追加しbundle installする
1
|
|
論理削除対象モデルにカラム deleted_at:timestamp を予め設けておく
1
|
|
論理削除対象モデルにacts_as_paranoidを定義
1 2 3 4 5 |
|
※子モデルも同時に論理削除対象とする場合、以下のようにすること
1 2 |
|
1 2 3 4 |
|
1 2 3 4 |
|
その他
・論理削除されたレコードを取得する
User.only_deleted
・通常レコードと論理削除されたレコードをまとめて取得する
User.with_deleted
・論理削除からの復帰
User.only_deleted.find(2).recover
まとめて復帰するなら
User.only_deleted.each &:recover
なお、親子関係にあるモデル間において親モデルが論理削除から復帰すると、自動的に小モデルも論理削除から復帰する
参考サイト:
http://d.hatena.ne.jp/choripon/20101229/1293634455
http://doruby.kbmj.com/rick_blog/20090416/Ruby_On_Rails__acts_as_paranoid