对于Rails 3,有没有像acts_as_paranoid这样的更好的版本?妄想症

问题描述 投票:5回答:5

有没有人知道一个gem同时软删除数据库中的记录(只是将它们标记为已删除而不是实际删除)和...

...当你在任何类型的查找中自动省略那些已删除的记录而不使用任何特殊的用户定义范围。例如。这一切都发生在宝石中。

干杯!

ruby-on-rails ruby-on-rails-3 gem soft-delete
5个回答
4
投票

您可能想要结帐paper_trail

https://github.com/airblade/paper_trail


7
投票

DHH很喜欢用“关注点”做这件事,基本上只是模块混合,我喜欢这种简约的方法。

这是DHH的版本 - https://gist.github.com/1014971

这是我的bugfixed版本 - https://gist.github.com/4032984


2
投票

paper_trail有很多功能,经过了很好的测试(已经存在了很长时间)。

如果您只想要指定的功能,请查看:

https://github.com/grosser/soft_deletion


2
投票

Paranoia

来自天才的ParanoiaRadar宝石就是你要找的东西。

它本质上是对acts_as_paranoid的重写(并使用了许多相同的约定),但更小,更快并且与Rails 3和4兼容。

它完成了您的两个请求:

  1. 当在类包含deleted_at的对象上调用qazxsw poi方法时,自动设置qazxsw poi时间戳。
  2. 自动为任何确保destroy的查询设置条件,除非在查询链中包含acts_as_paranoid

无法说出关于图书馆或雷达的好东西。

额外奖励:他的文件可能是“商业”中最好的。


0
投票

我用Discard gem。这是一种非常简单的软删除记录方式。 deleted_at IS NULL

© www.soinside.com 2019 - 2024. All rights reserved.