Comportement étrange de la catégorie car elle commence par un chiffre

Salut à tous,

Depuis la dernière mise à jour, deux de mes catégories pointent vers l’une d’elles (par exemple, si vous avez Catégorie 1 et Catégorie 2, toutes deux affichent le contenu de Catégorie 1). Ce comportement est déjà assez étrange, alors, en essayant de « démêler ça », j’ai tenté de modifier la configuration de Catégorie 2, celle qui affichait les mauvais sujets. Les modifications n’ont pas été enregistrées, malgré de multiples tentatives.

Cependant, j’ai essayé de changer l’URL de la catégorie pour quelque chose d’autre, afin de voir si cela forcerait un rechargement ou autre. Maintenant, si vous cliquez sur la catégorie, Discourse reste bloqué en train de recharger sans mettre à jour l’URL vers celle de la catégorie. Donc, sauf si je rate quelque chose, je ne peux plus modifier la catégorie, car il faut y entrer pour la modifier (je crois).

J’ai déjà reconstruit notre instance et tout le reste, mais rien n’a changé. Quelqu’un aurait-il une suggestion sur ce qu’il faut faire ?

Merci d’avance.

Peut-être vérifier les permaliens ? Un permalien est créé lorsque vous renommez une catégorie. Il est possible que cela soit à l’origine du problème (je pense que ce serait évident si c’était le cas, mais c’est la seule piste que j’ai).

Merci pour votre suggestion @pfaffman

En effet, il existe un permalien pour la catégorie, mais je rencontre toujours le même comportement étrange.

En jouant avec les permaliens, je pense avoir compris le problème : « Catégorie 1 » a un nom normal (par exemple : « Catégorie »), tandis que « Catégorie 2 » avait un nom numérique (par exemple : « 11 »). Il semble que ce qui se passe, c’est que, puisque la Catégorie 1 possède l’« ID de catégorie » qui correspond au même nombre que le nom de la Catégorie 2, tout est désorganisé.

Puisque le changement de nom que j’ai effectué était vers un nombre plus grand juste pour tester (de « 11 » à « 111 »), cela reste bloqué au chargement… peut-être parce qu’il recherche l’ID de catégorie « 111 » ? Quelqu’un peut-il confirmer si cela est possible ?

Le nom de la catégorie commence-t-il par un chiffre ? Cela pourrait poser problème.

Oui, c’est littéralement un nombre. :sweat:

Suite à l’enquête :

  • Ajout des permaliens pour les anciens (“11”) et les nouveaux (“111”) noms. Aucun effet, le chargement continue (j’ai dû deviner l’ID de la catégorie, je ne sais pas s’il existe un moyen de le vérifier quelque part).

  • Je souhaite ajouter une précision : la catégorie concernée est une sous-catégorie (je le mentionne simplement car, en regardant l’URL, je ne sais pas si cela affecte le résultat). Elle ressemble donc à quelque chose comme /c/CatégorieParente/111.

  • Existe-t-il un moyen de manipuler une catégorie si on n’y a pas accès ? Par exemple, pour essayer de modifier l’URL ou autre chose ?

Bonjour à nouveau,

J’ai continué à essayer différentes choses avec mes connaissances limitées. À moins que quelqu’un ne me montre comment modifier une catégorie sans y accéder, je manque d’idées… Existe-t-il un moyen de « déplacer » tous les sujets d’une catégorie vers une autre ?

Puisque je ne semble pas pouvoir résoudre cela par moi-même, une façon d’atténuer le problème pour améliorer l’expérience utilisateur serait de le déplacer vers une autre catégorie et de laisser la catégorie « zombie » jusqu’à ce que quelqu’un ait une meilleure idée (car, si ma mémoire est bonne, on ne peut pas supprimer une catégorie sans y accéder, elle resterait donc là, vide, dans la liste).

:warning: Faites une sauvegarde de votre site avant d’exécuter les commandes !

cd /var/discourse
./launcher enter app
rails c
Category.find_by_slug('SLUG-DE-LA-CATEGORIE-DE-DEPART').id
Category.find_by_slug('SLUG-DE-LA-CATEGORIE-DE-DESTINATION').id
exit

Remplacez SLUG-DE-LA-CATEGORIE-DE-DEPART et SLUG-DE-LA-CATEGORIE-DE-DESTINATION par les slugs des catégories de départ et de destination. Les résultats seront deux identifiants (IDs).

rake categories:move_topics[IDENTIFIANT-CATEGORIE-DEPART,IDENTIFIANT-CATEGORIE-DESTINATION]

par exemple

rake categories:move_topics[11,27]
./launcher enter app 
rails c
c=Category.find(IDENTIFIANT-CATEGORIE-DEPART)
c.destroy

Salut @dax,

Désolé pour ma réponse tardive. J’ai testé, appliqué et résolu mon problème grâce à ces étapes. Merci beaucoup pour ton aide.

Je voudrais rendre la pareille d’une manière ou d’une autre (même si mes compétences en codage ne sont pas excellentes). Y a-t-il un moyen d’ajouter une validation pour empêcher que les catégories soient des nombres ? Je souhaite contribuer à cela.

Merci à tous.

Merci, mais nos ingénieurs ont déjà une solution pour empêcher l’insertion de chiffres dans les identifiants de catégorie. Comme vous l’avez constaté, il est actuellement acceptable d’avoir « 11 » comme nom de catégorie, mais l’identifiant de la catégorie devra être modifié pour ne pas commencer par un chiffre, par exemple cat-11.