¿Podrías simplemente eliminarlos?
u=User.find_by_username('byebye')
posts=Post.where(user_id: u.id)
y luego llamar a PostDestroyer en todas las publicaciones. (No recuerdo exactamente cómo hacerlo de inmediato).
Si realmente quieres reemplazar sus publicaciones con “eliminado por…”, entonces harías algo como
posts.update_all(raw: "eliminado por solicitud del usuario")
Y luego necesitarías borrar cosas del modelo PostRevision, tal vez
posts.each do |p|
bad=PostRevision.where(post_id: p.id)
bad.destroy_all
end
Querrías hacer un par de esas manualmente como prueba, o en un sitio de staging si eres realmente cuidadoso.