在 Rails 中,当要删除一条记录时,我想为这些删除的记录维护一个单独的表(在结构上类似于前者)。
实现这一点的一种方法是明显地从第一个模型中复制结构、验证和关联,并将其粘贴到已删除项目模型中。但是,这会导致大量代码冗余,并且不是可扩展的解决方案。
有没有一种方法可以在 Rails 中实现这一点而没有太多(或任何)代码冗余或可能比上述解决方案更具可扩展性的解决方案?
我正在使用 Ruby 1.9.3-p125 和 Rails 3.2。
更新
我确实考虑过在表格中使用一个额外is_deleted
的列,但是,我决定反对它,因为我不希望这个表格变得太大而且被删除的帖子弄得乱七八糟。我并不打算真正访问这些已删除的帖子——这些只是为了记录保存或存档目的而存储的。添加此列也会使访问此表变得更慢,更重要的是,我担心我可能会错过is_deleted == false
某个 SQL 条件中的检查 - 即使我default_scope
在模型中包含此检查。