问题描述
|
有谁知道gem会同时从数据库中软删除记录(只是将它们标记为已删除而不是实际上已删除)并...
...同样,当您进行任何类型的查找时,都会自动忽略那些已删除的记录,而无需使用任何特殊的用户定义范围。例如。这一切都发生在宝石中。
干杯!
解决方法
您可能要结帐paper_trail
https://github.com/airblade/paper_trail
, DHH是使用“关注点”做到这一点的粉丝,“关注点”基本上只是模块混合,我喜欢这种极简方法。
这是DHH的版本-https://gist.github.com/1014971
这是我的错误修正版本-https://gist.github.com/4032984
, paper_trail具有很多功能,并且经过了很好的测试(已经存在了很长时间)。
如果只需要指定的功能,请签出:
https://github.com/grosser/soft_deletion
, 偏执狂
来自天才雷达的偏执狂宝石就是您想要的。
它本质上是对acts_as_paranoid的重写(并使用许多相同的约定),但是更小,更快并且与Rails 3和4兼容。
它完成了您的两个请求:
在类包括“ 2”的对象上调用“ 1”方法时,将自动设置“ 0”时间戳。
除非您在查询链中包含
with_deleted
,否则对确保deleted_at IS NULL
的所有查询自动设置条件。
无法说出有关图书馆或Radar的好东西。
奖励:他的文档可能是“企业”中最好的。
, 我使用丢弃宝石。这是用于软删除记录的非常简单的方法。
https://www.rubydoc.info/gems/discard/1.0.0