Eine Idee wäre, eine externe ID im Benutzerdatensatz zu speichern und dann /by-external/:external_id zu verwenden. Eine andere Möglichkeit ist die Nutzung eines Webhooks, um Ihre externe Datenbank zu benachrichtigen, falls sich der Benutzername ändert. Eine weitere Option ist, die Änderung von Benutzernamen einfach zu deaktivieren. Bei einem kurzen Blick in discourse/config/routes.rb sehe ich keine Route, die die user_id verwendet.