Hier könnte eine Ursache liegen. Zu Referenzzwecken bin ich ein Benutzer im Roblox DevForum, der v3.0.3 verwendet, kein Administrator, und erleide das hier beschriebene Problem. Ich habe dort eine kleine Ausarbeitung gemacht, um es selbst herauszufinden, aber ich werde den relevanten Teil kopieren/einfügen:
Ich konnte meine Lieblingsabzeichen schon vor langer Zeit auswählen, als ich einzelne hatte, aber jetzt, wo ich gestapelte Kopien habe, kann ich sie nicht mehr abwählen. Vielleicht liegt es daran, dass man mehr Kopien erhält, nachdem man sie favorisiert hat, da jedes Abzeichen einzigartig ist, egal wie viele Duplikate man erhält? Das ist meine aktuelle Begründung, aber natürlich kann ich das nicht beweisen, ohne die tatsächliche Discourse-Installation untersuchen zu können.
Ich habe die Abzeichen Great Topic und Good Topic vor langer Zeit favorisiert, als ich einzelne Kopien hatte, aber jetzt habe ich 2 bzw. 4. Wenn ich versuche, sie zu entfavorisieren, erhalte ich die generische Antwort FAILED. Andere Benutzer, die Abzeichen nicht favorisiert haben, können sie nach Belieben favorisieren und entfavorisieren, was darauf hindeutet, dass dieses Problem durch das Hinzufügen von Abzeichen desselben Typs, die bereits favorisiert sind, verursacht wird und dass diese Kopien zu Ihren Gesamtfavoriten zählen, wodurch eine Assertion fehlschlägt.
Wenn man sich toggle_favorite für diese Version ansieht, ist die einzige Assertion bezüglich der Abzeichenanzahl:
if !user_badge.is_favorite &&
user_badges.select(:badge_id).distinct.where(is_favorite: true).count >=
SiteSetting.max_favorite_badges
return render json: failed_json, status: 400
end
Ich habe dies zunächst abgetan, weil user_badge.is_favorite hier wahr sein sollte, aber jetzt beginne ich zu denken, dass sie aufgrund der zusätzlichen Kopien nicht als favorisiert gelten…
Wenn dies übrigens in einer neueren Version behoben wurde, entschuldige ich mich für das Wiederaufleben dieses Problems, aber die Administratoren dort versuchen, es zu lösen, und es war eine verlorene Sache, daher versuche ich, hier Aufmerksamkeit darauf zu lenken, um es ihnen zu erleichtern, es zu beheben oder Discourse zu aktualisieren.