作为存档的行为不会创建存档表

时间:2012-12-29 21:23:48

标签: ruby-on-rails ruby activerecord

我目前正在尝试在我的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'

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

使用像soft_as_paranoid?

这样的软可删除的dem是否赞不绝口

2 个答案:

答案 0 :(得分:0)

由于表格似乎不存在,看起来宝石没有被Rails安装或加载。

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

答案 1 :(得分:0)

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

相关问题