开源项目 Discard 使用教程

开源项目 Discard 使用教程

discard🃏🗑 Soft deletes for ActiveRecord done right项目地址:https://gitcode.com/gh_mirrors/di/discard

项目介绍

Discard 是一个用于处理 Ruby on Rails 应用中软删除功能的 gem。它提供了一种简单的方式来标记数据库记录为已删除,而不是实际从数据库中删除它们。这样可以确保数据的安全性和可恢复性。

项目快速启动

安装

首先,在你的 Gemfile 中添加以下行:

gem 'discard'

然后运行以下命令来安装 gem:

bundle install

配置

在你的模型中引入 Discard:

class Article < ApplicationRecord
  include Discard::Model
end

默认情况下,Discard 会使用 discarded_at 字段来标记记录是否被删除。你需要在你的数据库迁移中添加这个字段:

class AddDiscardedAtToArticles < ActiveRecord::Migration[6.0]
  def change
    add_column :articles, :discarded_at, :datetime
    add_index :articles, :discarded_at
  end
end

运行迁移:

rails db:migrate

使用

现在你可以在你的应用中使用 Discard 的功能了:

article = Article.create(title: "Hello World")
article.discard # 软删除
article.discarded? # => true
article.undiscard # 恢复
article.discarded? # => false

应用案例和最佳实践

应用案例

Discard 在许多场景中都非常有用,特别是在需要保留数据历史记录的应用中。例如,在一个博客系统中,当用户删除一篇文章时,你可能不想从数据库中永久删除它,而是将其标记为已删除,以便将来可以恢复或进行数据分析。

最佳实践

  1. 保持一致性:确保在你的应用中始终使用 Discard 进行软删除操作,而不是直接删除记录。
  2. 索引 discarded_at 字段:为了提高查询性能,建议在 discarded_at 字段上添加索引。
  3. 使用作用域:在查询时使用 keptdiscarded 作用域来过滤记录,例如:
Article.kept # 只查询未删除的记录
Article.discarded # 只查询已删除的记录

典型生态项目

Discard 可以与其他 Ruby on Rails 生态项目结合使用,以增强功能和性能:

  1. ActiveAdmin:在 ActiveAdmin 中集成 Discard,以便管理员可以轻松地进行软删除和恢复操作。
  2. Sidekiq:使用 Sidekiq 进行后台任务处理,例如定期清理已删除的记录。
  3. Rails Event Store:记录软删除和恢复操作的事件,以便进行审计和追踪。

通过结合这些生态项目,你可以构建一个更加健壮和功能丰富的应用。

discard🃏🗑 Soft deletes for ActiveRecord done right项目地址:https://gitcode.com/gh_mirrors/di/discard

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

叶准鑫Natalie

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值