存档mongoid记录的最佳实践

时间:2017-01-26 21:27:53

标签: ruby-on-rails mongoid

我有一个Rails应用程序,我们有一个用例,我们希望维护模型之间的所有关系,但归档记录。这样做的目的是删除不活动的记录,但偶尔可以访问它们。

我想到的一种方法是查看Rails是否支持覆盖集合名称,并且可能将对象从一个集合移动到另一个集合,并且在指定归档集合时,指定归档表。

对于Rails / Mongoid这种事情是否有最好的做法?

希望有人能在SO关闭此问题之前提供帮助。

感谢您的帮助, 凯文

2 个答案:

答案 0 :(得分:0)

我会在名为delete_flag的模型中添加一个新字段,默认情况下会将false作为值。要进行存档,请将其更改为true

field :delete_flag, type: Boolean, default: false

编写两个范围来过滤掉活动范围和存档范围。

# Scopes
scope :active, -> { where(delete_flag: false) }
scope :archived, -> { where(delete_flag: true) }

答案 1 :(得分:0)

你可能正在寻找Mongoid :: Paranoia

  

Mongoid :: Paranoia可以对Mongoid文档进行“软删除”。偏执文档不是从数据库中删除,而是使用deleted_at时间戳标记,默认情况下会从查询中忽略。

On Github