LoginSignup
0
0

More than 3 years have passed since last update.

Gem paranoiaを使った論理削除

Posted at

備忘録

今回自作アプリ作成の際に論理削除を用いたので備忘録として記録します。
プログラミング初心者のため間違いがあればご指摘お願いします!
今回はrails、MySQLを使い開発を進めています。

論理削除とは

一般的な削除は物理削除と言い削除したらDB上からもデータが削除されます。
それに対し、論理削除とは一般的な削除とは違い、あたかも削除されたように見せてDBにはデータが残っている状態のことを言います。
削除履歴を表示したり、データの復元などにも使われます。

ステップ1 Gemの導入

論理削除の手間を大幅にカットしてくれるGemのparanoiaを導入する。
Gemfileに記述しターミナルでbundle install

gem 'rails_12factor'

ステップ2 カラムを追加

論理削除をするとこちらのカラムに削除した日時が挿入され、削除フラグを立てる事ができます。

class AddDeletedAtToCategories < ActiveRecord::Migration[6.0]
  def change
    add_column :categories, :deleted_at, :datetime
  end
end

正しければ、$ rails db:migrateして下さい。
モデルに以下の記述をします。

ステップ3 モデルを編集する

acts_as_paranoid

まとめ

以上の設定でparanoiaを使った論理削除の設定が完了しました!
普通に実装しようとするとかなり大変だと思いますが、paranoiaを使う事で簡単に実装する事ができました!
プログラミング初心者の方の役に立てると幸いです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0