Ich habe ein seltsames Problem mit dem Benutzernamen. Mein Board verwendet RTL und eine einzigartige Sprache für arabische Schlüsselwörter.
Der Benutzername ist auf englische Wörter eingestellt, aber wenn ich die Protokolle überprüfe, wird mir angezeigt, dass die Vorlage des Benutzerprofils nicht gefunden werden kann … Weil sie in arabischen Schlüsselwörtern ist.
Wenn ich den Benutzernamen zur Änderung überprüfe, ist er auf Englisch eingestellt, aber im Fehler wird mir ein arabisches Schlüsselwort angezeigt.
Irgendwelche Vorschläge, wie man einzigartige Caratars auf Discourse anwenden kann? Damit wir Benutzernamen in arabischer Sprache oder mit einzigartiger UTF-8-Kodierung verwenden können?
Warum glaubst du das? Ich glaube nicht, dass die Methode create_user_profile manuell ausgeführt werden soll, sie wird von Discourse nach der Erstellung eines Benutzers ausgeführt: discourse/app/models/user.rb at main · discourse/discourse · GitHub
Deshalb erhältst du die Fehlermeldung duplicate key value, weil du versuchst, Benutzerprofile zu erstellen, die bereits existieren.
Ich habe versucht, diesen Fehler zu reproduzieren, indem ich ein Benutzerkonto mit dem Benutzernamen دعم_المجتمع erstellt habe, und ich habe ihn auch mit einem Konto mit einem englischen Benutzernamen getestet. Beide hatten die Oberflächensprache auf Arabisch eingestellt, und es funktioniert einwandfrei.
Ich glaube nicht, dass dieses Problem mehr mit der Sprache oder den Vorlagen zusammenhängt, sondern mit den fehlenden Bildern für die Badges, wie du hier Badge image missing issue darauf hingewiesen hast.
Du hast Recht; es ist sowieso ein Backup und ich stelle es wieder her und es funktioniert einwandfrei. Das Problem betrifft nur die Badge-Bilder; und ich versuche, den Befehl auszuführen
rake uploads:clean_up
rake posts:rebake
aber immer noch das gleiche Problem…
[2] pry(main)> Discourse.system_user.create_user_profile
ActiveRecord::RecordNotUnique: PG::UniqueViolation: ERROR: duplicate key value violates unique constraint "user_profiles_pkey"
DETAIL: Key (user_id)=(-1) already exists.
from /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rack-mini-profiler-2.3.3/lib/patches/db/pg.rb:69:in `exec_params'
Caused by PG::UniqueViolation: ERROR: duplicate key value violates unique constraint "user_profiles_pkey"
DETAIL: Key (user_id)=(-1) already exists.
from /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rack-mini-profiler-2.3.3/lib/patches/db/pg.rb:69:in `exec_params'
[3] pry(main)>