El momento de arreglar eso fue cuando hiciste la importación. Como alguien que hace muchas migraciones, que la gente lance un foro con un formato defectuoso como este es una de mis mayores preocupaciones. Habría sido bastante fácil arreglar el script de importación, y mucho más difícil arreglarlo a posteriori ahora que has lanzado. Habría sido quizás una o dos horas entonces, y ahora es 2-5 veces más trabajo.
Sí, se podría escribir un script que limpiara las cosas en el foro activo y, o bien (aterrador) no mantuviera las ediciones (por lo que no habría edición ni notificaciones), o bien hiciera la edición y le dijera que no actualizara/notificara. Estoy bastante seguro de que lo he hecho antes. Harías algo como:
fixes = Post.where("raw like '%algo roto%'")
fixes.each do |p|
new_raw = p.raw.gsub!(algunas cosas)
PostRevisor.new(p).revise!({raw: new_raw, edit_reason: 'arreglador de publicaciones!'}, {bypass_bump: true)
end
¿El raw tiene todo ese HTML?