Dies wäre der sauberste Weg, um die Beiträge zu löschen:
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
Dadurch wird im Wesentlichen so getan, als hätte der System-Benutzer jeden Beitrag manuell über die Löschschaltfläche auf dem Beitrag gelöscht. Ich habe skip_staff_log hinzugefügt, damit Ihre Mitarbeiter-Protokolle nicht verschmutzt werden, aber Sie können dies entfernen, wenn Sie lieber möchten, dass die Aktion protokolliert wird.
Denken Sie, dass dies Ihre Anforderungen erfüllt?