【问题标题】:Best practice for archiving mongoid records归档 mongoid 记录的最佳实践
【发布时间】:2017-01-26 21:27:52
【问题描述】:

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

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

Rails / Mongoid 有这种事情的最佳实践吗?

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

感谢您的帮助, 凯文

【问题讨论】:

    标签: ruby-on-rails mongoid


    【解决方案1】:

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

    field :delete_flag, type: Boolean, default: false
    

    并编写两个作用域来过滤掉活动的和归档的。

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

    【讨论】:

      【解决方案2】:

      您可能正在寻找 Mongoid::Paranoia

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

      On Github

      【讨论】:

      • 这可能是我想要的,你能强制查询吗?还是必须先恢复它们才能查询它们?没关系,我正在阅读文档,感谢您的提示,我会在进行一些研究后接受您的回答。
      猜你喜欢
      • 1970-01-01
      • 2021-07-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-24
      相关资源
      最近更新 更多