Module: ActivemodelObjectInfo::DeletedOperation
- Extended by:
- ActiveSupport::Concern
- Defined in:
- lib/activemodel_object_info/deleted_operation.rb
Overview
用来进行和删除操作相关的数据库模型的功能模组。主要结合了使用 :deleted 字段标识数据软删除的功能。
核心作用与职责:
为 ActiveRecord 模型提供标准化的“软删除(Soft Delete)”功能。
引入该模块后,会自动通过 default_scope 过滤掉已标记为删除的记录,
并注入 soft_delete / soft_delete! 方法。在执行软删除时,会自动更新
相关的审计字段(如 deleted_by, deleted_at, updated_by)。
核心重要方法:
- #soft_delete:执行软删除并调用 save 更新数据。
- #soft_delete!:执行软删除并调用 save! 更新数据(抛出异常)。
- #restore:恢复已软删除的数据。
- #restore!:强制恢复已软删除的数据(抛出异常)。
- #delete_block:底层通用的删除字段赋值逻辑块。
[Changelog] [2026-07-28] 新增 restore 与 restore! 方法以支持软删除数据恢复 (shiner527) [2026-07-28] 补充完整 YARD 文档、行内注释,清理尾随空格 (shiner527) [2021-04-19] 创建基础模块,提供软删除与作用域注入功能 (shiner527)