0

我目前正在尝试在我的 rails 应用程序中使用acts_as_archive gem。

关于软删除的所有咆哮,我认为将已删除的数据存储在一个额外的表中可能是一个更优雅的解决方案......

我的问题是,我已经按照简约文档配置了所有内容,但存档表没有按预期创建。

我的模型:

class Article < ActiveRecord::Base
  attr_accessible :content, :lead, :title
  acts_as_archive
  has_and_belongs_to_many :categories
end

class Category < ActiveRecord::Base
  attr_accessible :title
  acts_as_archive
  has_and_belongs_to_many :articles
end

config/acts_as_archive.yml:

Article:
    - class: Article::Archive
    table: archived_articles

 Category:
    - class: Category::Archive
    table: archived_categories

之后我运行 rake db:migrate 并删除了 rails 控制台中的一篇文章。然后我尝试访问

Article::Archive.first

但出现以下错误:

ActiveRecord::StatementInvalid: Could not find table 'archived_articles'

似乎包含了 gem,但不知何故没有创建表。我错过了什么吗?毕竟,我开始怀疑使用这个 gem 是否是一个好主意,因为文档非常少,而且它似乎不再活跃了....

使用像acts_as_paranoid这样的可软删除的dem有什么好的吗?

4

2 回答 2

0

由于该表似乎不存在,看来该 gem 没有被 Rails 安装或加载。

尝试重新运行bundle install以确保 Rails 拾取新的 gem,然后重新迁移。

于 2012-12-29T21:29:03.003 回答
0

由于acts_as_archive 有点过时,我切换到paper_trail,它不是100% 相同,但也支持通过版本控制系统关闭软删除行为。

于 2012-12-30T23:16:27.757 回答