0

現在、Rails アプリでact_as_archive gemを使用しようとしています。

soft-deletable についてのすべての暴言で、削除されたデータを追加のテーブルに保存する方がより洗練されたソリューションである可能性があると考えました...

私の問題は、最小限のドキュメントに従ってすべてを構成しましたが、アーカイブテーブルが期待どおりに作成されないことです。

私のモデル:

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を使用するのが良い考えであるかどうか疑問に思い始めています....

act_as_paranoid のようなソフト削除可能な dem を使用することについて、何か良い点はありますか?

4

2 に答える 2

0

テーブルが存在しないように見えるため、gemがRailsによってインストールまたはロードされていないようです。

再実行bundle installして、新しい宝石がRailsによってピックアップされていることを確認してから、再移行してください。

于 2012-12-29T21:29:03.003 に答える
0

act_as_archive は時代遅れなので、100% 同じではありませんが、バージョニング システムを介してソフトで削除可能な振る舞いをサポートする paper_trail に切り替えました。

于 2012-12-30T23:16:27.757 に答える