Как предотвратить обновление конкретных полей пользователя

Если вы скрываете отображение этих значений, какое имеет значение, заполнят ли их пользователи? Для этого потребовались бы усилия одного пользователя, чтобы добавить местоположение, и усилия другого — чтобы зайти в профиль и увидеть, что было введено.

Если не форкать Discourse, чтобы удалить эти поля из модели, то практически нет способа помешать кому-то с доступом к консоли Rails вводить данные в них.

Вы можете написать плагин, который периодически запускался бы и устанавливал любые нужные вам поля в nil. Либо вы можете использовать хук, вызываемый при обновлении профиля пользователя, который обнулял бы эти поля. Посмотрите плагины на GitHub - discourse/all-the-plugins · GitHub, которые используют “add_model_callback” и “:before_save”, чтобы найти примеры. После этого вы примените это к UserProfile.