我有一个Rails应用程序,我们有一个用例,我们希望维护模型之间的所有关系,但归档记录。这样做的目的是删除不活动的记录,但偶尔可以访问它们。
我想到的一种方法是查看Rails是否支持覆盖集合名称,并且可能将对象从一个集合移动到另一个集合,并且在指定归档集合时,指定归档表。
对于Rails / Mongoid这种事情是否有最好的做法?
希望有人能在SO关闭此问题之前提供帮助。
感谢您的帮助, 凯文
答案 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时间戳标记,默认情况下会从查询中忽略。