在Rails中,当要删除一条记录时,我想为这些已删除的记录维护一个单独的表(在结构上类似于前者)。Rails将记录删除到单独的表中
实现此目的的一种方法是明显复制第一个模型的结构,验证和关联,并将其粘贴到已删除项目模型中。但是,这会导致大量的代码冗余,而且不是可扩展的解决方案。
有没有办法实现这个Rails中没有太多(或任何)代码冗余 或可能是一个比上面提到 更具扩展性的解决方案?
我正在使用Ruby 1.9.3-p125和Rails 3.2。
UPDATE
我没有考虑在表使用附加is_deleted
列,但是,我决定不这么做,因为我不想让这个表得到太大而凌乱与删帖。我不打算真正地访问这些删除的帖子 - 这些仅仅是为了记录保存或存档目的而存储的。添加此列还会使访问此表更慢,更重要的是,我担心在某处出现某种SQL条件时,我可能会错过is_deleted == false
- 即使将此检查包含在模型的default_scope
中。
这可能是有用的:http://railspikes.com/2010/2/26/acts-as-archive – Mischa 2012-03-02 07:43:34