Früher diese Woche habe ich von 2.7.0.beta2 auf 2.8.0.beta2 aktualisiert. Seitdem kann mein reguläres Konto (aber nicht mein Admin-Konto) keine meiner /u/-Seiten mehr aufrufen. Stattdessen erhalte ich einen 404-Fehler. Dies tritt sowohl auf dem Desktop (Firefox 84 und 89) als auch auf mobilen Geräten (getestet unter Android) auf, und zwar auch nach dem Abmelden, dem Löschen des Caches und dem erneuten Einloggen.
Ich vermute, dass diese Änderung mit folgendem Problem zusammenhängt:
[quote=“jomaxro, post:1, topic:193148”]
Anzeige von ser-selectable Abzeichen auf der Benutzerkarte
Standardmäßig zeigt die Benutzerkarte das Vertrauensstufen-Abzeichen des Benutzers an, gefolgt von den beiden „höchsten
Das Plugin scheint offiziell zu sein. Beim Klicken darauf werde ich weitergeleitet zu:
Und ja, das Deaktivieren des Plugins behebt den 404-Fehler. Meine Frage ist, warum dies ein manueller Schritt sein muss, da ich dachte, dies sei ein offizielles Plugin und würde weiterhin funktionieren.
Ich möchte darauf hinweisen, dass ich vor dem Posten geprüft habe und gesehen habe, dass der letzte Commit zum Plugin jünger war als die 2.8.0beta2-Version. Bei erneutem Hinsehen stelle ich fest, dass der Commit von einem „Bot“-Benutzer stammt, was also vielleicht nicht viel aussagt.
Bei genauerer Betrachtung glaube ich nicht, dass es exakt dasselbe ist. Das Abzeichen erschien als großes Bild in der unteren linken Ecke der Benutzerkarte. Diese neue Kernfunktion scheint kleine Kästchen mit winzigen Abzeichenbildern und einem Abzeichennamen entlang der Unterseite der Benutzerkarte zu steuern.
Wie es vor diesem Update bestand, war die Auswahl auf Bilder beschränkt, die mit erzielten Errungenschaften verknüpft waren. Ich habe allen Abzeichen auf meinem Forum benutzerdefinierte Bilder hinzugefügt, um solche Benutzerkarten-Abzeichen hübscher zu machen. (Die Standard-Abzeichen sind, ähm, „Müll“.)
Ich vermute, es ist die neue Spalte is_favorite, die zur Tabelle UserBadges hinzugefügt wurde.
Das SQL ist wahrscheinlich jetzt fehlerhaft.
UserBadge.attribute_names.map do |name|
if name == 'is_favorite'
"BOOL_OR(user_badges.#{name}) AS is_favorite"
else
"MAX(user_badges.#{name}) AS #{name}"
end
end
Obwohl wir uns bemühen, dass Änderungen im Kern keine Plugins zerstören, übersehen wir manchmal Verwendungen, oder unsere Plugins verfügen nicht über ausreichende Testabdeckung (wir führen für alle offiziellen Plugins bei jeder Änderung im Kern Tests durch). In dem oben genannten Commit habe ich dem Plugin discourse-user-card-badges weitere Tests hinzugefügt, um ähnliche Probleme in Zukunft zu verhindern.
Ich verstehe, dass Fehler passieren. Als ich das schrieb, dachte ich, die Funktionalität dieses Plugins werde durch eine neue Kernfunktion ersetzt. Erst nachdem ich diese Funktion genauer untersucht hatte, wurde mir klar, dass es sich um unterschiedliche Dinge handelt.