1

次の機能を備えたアプリケーションがあります。

  • gemを使用したユーザーと認証Devise
  • act_as_followerプラグインを使ったフォロワー・追従システム。
  • ユーザーが作成できる投稿。
  • 各投稿にいいねを付けることができます (ユーザーと投稿を作成するための結合テーブルがありますlikes)。
  • 各投稿には、Paperclipgem を使用して画像を含めることができます (将来的には Amazon S3 も使用する予定です)。
  • すべてのユーザーがアバターを持つことができます。
  • ユーザー間のメッセージング システム。
  • あらゆる種類のアクションの通知。
  • ユーザーは投稿にコメントできます。

ユーザーが自分のアカウントを削除するオプションを持っていることを望みます。userDeviseにはすでにこのアクションがありますが、エントリを削除するだけなので十分ではありません。

私がしなければならないことは、ユーザーが作成したすべての投稿を削除し、投稿の画像を削除することです。いいね、コメント、メッセージ(送受信)、通知、フォロワー・フォロー関係をすべて削除し、最後にアバター画像を含むユーザーアカウントを削除します。user_idつまり、アクションは、削除するユーザーに関連するフィールドを持つすべてのリソースを削除する必要があります。

また、1 回のリクエストでこれを行うと非常に時間がかかり、投稿の半分が削除されるなど、何か問題が発生する可能性があるのではないかと心配しています。

この状況をすべて解決する最善の方法は何ですか?

編集:

私はこれを使用しましたが、うまくいきました。

class User < ActiveRecord::Base
  has_many :posts, :dependent => :destroy
end

acts_as_followerすべてのフォロワー/フォロー関係を自動的に削除Paperclipし、リソースに関連するすべての画像も削除します。

4

1 に答える 1