有谁知道一个 gem 可以从数据库中软删除记录(只是将它们标记为已删除,而不是实际删除)和...
...此外,您何时会在不使用任何特殊用户定义范围的情况下自动忽略那些被丢弃的记录。例如,这一切都发生在 gem 中。
干杯!
有谁知道一个 gem 可以从数据库中软删除记录(只是将它们标记为已删除,而不是实际删除)和...
...此外,您何时会在不使用任何特殊用户定义范围的情况下自动忽略那些被丢弃的记录。例如,这一切都发生在 gem 中。
干杯!
DHH 很喜欢用“关注点”来做这件事,这些“关注点”基本上只是模块混合,我喜欢这种极简主义的方法。
这是 DHH 的版本 - https://gist.github.com/1014971
这是我的错误修正版本 - https://gist.github.com/4032984
您可能想结帐 paper_trail
它本质上是对acts_as_paranoid的重写(并使用许多相同的约定),但更小、更快并且与Rails 3 和4 兼容。
它完成了您的两个请求:
在类包含 的对象上调用方法时自动设置deleted_at
时间戳。destroy
acts_as_paranoid
自动为确保 的任何查询设置条件deleted_at IS NULL
,除非您包含with_deleted
在查询链中。
无法对图书馆或雷达说足够多的好话。
奖励:他的文档可能是“业务”中最好的。
我使用丢弃宝石。这是软删除记录的一种非常简单的方法。 https://www.rubydoc.info/gems/discard/1.0.0