如何在数据库中搜索活动记录

时间:2015-03-25 05:13:39

标签: ruby-on-rails database activerecord

我是RoR的新手。我遇到了一个问题:一些活动记录可能不需要在数据库中搜索(假设它们已过期)。我不想从数据库中删除它,因为它与其他模型相关联。此外,由于它已过期,我不希望它更新。有没有办法在rails中处理这种情况?

3 个答案:

答案 0 :(得分:1)

用于添加软删除的Rails插件。

此gem可用于隐藏记录而不是删除它们,使它们可以在以后恢复。

https://github.com/ActsAsParanoid/acts_as_paranoid

答案 1 :(得分:0)

有不同的方式。但我建议你使用https://github.com/radar/paranoia

您可以在此处找到一个好的截屏视频:https://gorails.com/episodes/soft-delete-with-paranoia

添加到您的应用非常简单。只需将gem添加到您的Gemfile中,然后将acts_as_paranoid添加到您的模型中。

答案 2 :(得分:0)

你的问题

  1. 避免查询您的数据子集: *对于这个应该使用ActiveRecord的范围。具体使用默认范围。请参考http://api.rubyonrails.org/classes/ActiveRecord/Scoping/Default/ClassMethods.html。顺便说一句,这是我遇到的软删除宝石用来隐藏软删除记录的机制
  2. 如何阻止更新记录: 不确定你的意思。您将不会使用的记录(自动?)更新?