投稿を削除する最もクリーンな方法は以下の通りです:
whispers = Post.where(post_type: 4).where("created_at < ?", 1.year.ago)
whispers.find_each do |w|
PostDestroyer.new(Discourse.system_user, w, skip_staff_log: true).destroy
putc "."
end
これは、システムユーザーが投稿の削除ボタンを使って手動で各投稿を削除したかのように動作します。スタッフログを汚さないように skip_staff_log を含めていますが、アクションをログに記録したい場合はこれを削除することもできます。
これで要件を満たせるでしょうか?