Il pourrait y avoir une cause ici. Pour référence, je suis un utilisateur sur le Roblox DevForum utilisant la version 3.0.3, pas un administrateur, et je rencontre le problème décrit ici. J’ai fait une petite rédaction là-bas en essayant de le résoudre moi-même, mais je vais copier/coller la partie pertinente :
J’ai pu sélectionner mes badges préférés il y a longtemps lorsque j’avais des badges individuels, mais maintenant que j’ai des copies empilées, je ne peux plus les désélectionner, donc c’est peut-être dû au fait d’obtenir plus de copies après les avoir mis en favoris, car chaque badge est unique, peu importe le nombre de doublons que vous obtenez ? C’est mon raisonnement actuel, mais bien sûr, sans pouvoir examiner l’installation réelle de Discourse, je ne peux pas le prouver.
J’ai mis en favoris les badges Great Topic et Good Topic il y a longtemps lorsque j’avais des copies uniques, mais j’en ai maintenant 2 et 4 respectivement. Lorsque j’essaie de les retirer des favoris, cela se traduit par la réponse générique FAILED. D’autres utilisateurs qui n’ont pas mis de badges en favoris peuvent les mettre et les retirer à volonté, ce qui indique que ce problème est causé par l’ajout de badges du même type déjà mis en favoris, et que ces copies comptent dans vos favoris totaux, donc une assertion échoue.
En regardant toggle_favorite pour cette version, la seule assertion relative au nombre de badges est :
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
J’avais initialement écarté cela car user_badge.is_favorite devrait être vrai ici, mais je commence maintenant à penser qu’en raison des copies supplémentaires, ils ne sont pas considérés comme favoris…
Si cela a été corrigé dans une version plus récente, je m’excuse de relancer ce sujet, mais les administrateurs là-bas essaient de le résoudre et c’était une cause perdue, alors j’essaie d’attirer l’attention ici pour leur faciliter la tâche de le corriger ou de mettre à jour Discourse.