Könnten Sie sie einfach löschen?
u=User.find_by_username('byebye')
posts=Post.where(user_id: u.id)
und dann PostDestroyer für alle Beiträge aufrufen. (Ich erinnere mich nicht mehr genau, wie das geht.)
Wenn Sie wirklich ihre Beiträge durch „gelöscht von…“ ersetzen möchten, dann würden Sie so etwas tun:
posts.update_all(raw: "vom Benutzer gelöscht")
Und dann müssten Sie Dinge aus dem PostRevision-Modell löschen, vielleicht
posts.each do |p|
bad=PostRevision.where(post_id: p.id)
bad.destroy_all
end
Sie sollten ein paar davon von Hand als Test durchführen oder auf einer Staging-Site, wenn Sie wirklich vorsichtig sind.