我目前正在尝试在我的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是否赞不绝口答案 0 :(得分:0)
由于表格似乎不存在,看起来宝石没有被Rails安装或加载。
尝试重新运行bundle install
以确保Rails选择了新的gem,然后重新迁移。
答案 1 :(得分:0)
由于acts_as_archive有点过时,我切换到了paper_trail,它不是100%相同,但也支持通过版本控制系统实现软删除行为。