【发布时间】:2012-03-02 07:29:36
【问题描述】:
在 Rails 中,当要删除一条记录时,我想为这些删除的记录维护一个单独的表(在结构上类似于前者)。
实现这一点的一种方法是从第一个模型中复制结构、验证和关联,并将其粘贴到已删除项目模型中。但是,这会导致大量代码冗余,并且不是可扩展的解决方案。
有没有办法在 Rails 中实现这一点而没有太多(或任何)代码冗余 或一种可能比上述解决方案更具可扩展性的解决方案 上面?
我正在使用 Ruby 1.9.3-p125 和 Rails 3.2。
更新
我确实考虑在表格中使用额外的 is_deleted 列,但是,我决定不这样做,因为我不希望这张表格变得太大而且被删除的帖子弄得一团糟。我并不打算真正访问这些已删除的帖子——这些帖子只是为了记录或存档目的而存储的。添加此列还会使访问此表更慢,更重要的是,我担心我可能会在某个 SQL 条件下错过检查 is_deleted == false - 即使我在模型的 default_scope 中包含此检查。
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.2 model-associations