新手问题 软删除有什么现成的 gem 或者方式

as181920 · 2013年04月19日 · 最后由 wym205 回复于 2013年04月19日 · 5884 次阅读

全局删除数据都用软删除,物理上不删数据,有没有好的 gem 之类, 全部手写 deleted_at,deleted_by 感觉不是最好。

或者大家是怎么处理软删除的问题的

这种东西也要 gem .......

以前维护一个老的看到用 paranoia,后来没用直接手写,后来提到 scope。

#2 楼 @SharpX 懒得思考这个字段的处理,所以看看有木有特别偷懒的方法而已,特别全局同一个处理逻辑的情况

#3 楼 @as181920 我用 default_scope 过滤 delete 纪录,特殊情况,再通过 without scope 取出

https://www.ruby-toolbox.com/categories/Active_Record_Soft_Delete

也可以用 paper_trail,会存到另一张表里去,默认修改也会记录,可以配置成只记录删除。

#5 楼 @doitian 正好想到一个后面需要的功能,就是每次变更操作要记录下来,paper_trail 正好有类似功能,多谢。不过对于非 rails(ruby+activerecord)的,似乎没法直接用 paper_trail,有什么推荐不

acts_as_archive

#7 楼 @wym205 github 查询结果:This project is no longer maintained.

把自己之前项目的软删除提出来了一个 gem https://github.com/jimhj/soft_delete.git 不过没有写测试啊,现在正在用

组里一直在用的,还真是没注意它不维护了; 那就推荐以一个:rails3_acts_as_paranoid

需要 登录 后方可回复, 如果你还没有账号请 注册新账号