Si estás ocultando la visualización de estos valores, ¿qué importa si los rellenan? Requeriría que un usuario se esforzara para añadir una ubicación y que otro usuario tuviera que esforzarse para visitar su perfil y ver lo que había introducido.
Aparte de bifurcar Discourse para eliminar esos campos del modelo, no hay mucha manera de evitar que alguien con acceso a la consola de Rails introduzca datos en ellos.
Podrías escribir un plugin que se ejecutara periódicamente y estableciera a nil los campos que quieras. O podrías tener un hook que se llamara cuando se actualizara el perfil del usuario y que pusiera a nil esos campos. Busca un plugin en GitHub - discourse/all-the-plugins que tenga un “add_model_callback” y “:before_save” como ejemplos. Y luego lo harías para UserProfile.