Comportamiento extraño de la categoría porque comienza con un número

Hola a todos,

Actualmente hemos pasado a la última versión y dos de mis categorías apuntan a la misma (por ejemplo, si tienes Categoría 1 y Categoría 2, ambas mostrarán el contenido de Categoría 1). Este comportamiento ya es bastante extraño, así que, al intentar “desenredarlo”, intenté cambiar la configuración de Categoría 2, que era la que mostraba las publicaciones incorrectas. Los cambios no se guardaron, sin importar cuántas veces lo intentara.

Sin embargo, probé cambiar la URL de la categoría a algo diferente para ver si eso forzaba una recarga o algo similar. Ahora, si haces clic en la categoría, Discourse se queda atrapado recargando sin actualizar la URL a la de la categoría. Así que, a menos que esté pasando por alto algo, ahora no puedo editar la categoría, ya que creo que necesitas entrar en ella para editarla.

Ya hemos reconstruido nuestra instancia y todo lo demás, pero nada ha cambiado. ¿Alguien tiene alguna sugerencia sobre qué hacer?

Gracias de antemano.

Quizás revises los enlaces permanentes. Un enlace permanente se crea cuando cambias el nombre de una categoría. Podría ser que eso esté causando el problema (creo que sería obvio si ese fuera el caso, pero es lo único que se me ocurre).

Gracias por tu sugerencia @pfaffman

Efectivamente, existe un enlace permanente para la categoría, pero aún tengo el mismo comportamiento extraño.

Mientras experimentaba con los enlaces permanentes, creo que entendí el problema: “Categoría 1” tiene un nombre normal (es decir: “Categoría”), pero “Categoría 2” tenía un nombre numérico (es decir: “11”). Resulta que lo que creo que está sucediendo es que, dado que la Categoría 1 tiene el “ID de categoría” que es el mismo número que el nombre de la Categoría 2, todo se desordenó.

Dado que el cambio de nombre que hice fue a un número más grande solo para probar (de “11” a “111”), se quedó cargando… ¿quizás porque está buscando el ID de categoría “111”? ¿Puede alguien confirmar si esto es posible?

¿El nombre de la categoría comienza con un número? Eso podría ser un problema.

Sí, es literalmente un número. :sweat:

Seguimos investigando:

  • Se añadieron enlaces permanentes tanto al nombre antiguo (“11”) como al nuevo (“111”). Sin efecto, sigue cargando (tuve que adivinar el ID de la categoría; no sé si hay alguna forma de verificarlo en algún lugar).

  • Quisiera añadir algo: la categoría en cuestión es una subcategoría (solo lo menciono porque, al observar la URL, no sé si esto afecta la salida). Es algo como /c/CategoríaPadre/111.

  • ¿Existe alguna forma de manipular una categoría si no se tiene acceso a ella? ¿Para intentar cambiar la URL o algo similar?

Hola de nuevo,

He seguido intentando distintas cosas con mi limitado conocimiento. A menos que alguien señale una forma de editar una categoría sin acceder a ella, no tengo muchas ideas… ¿existe alguna manera de “mover” todos los temas de una categoría a otra?

Dado que no parece que pueda resolver esto por mi cuenta, quizás una forma de mitigarlo para mejorar la usabilidad sería moverlo a otra categoría y dejar la “zombie” hasta que alguien tenga una mejor idea (porque, si no recuerdo mal, no se puede eliminar una categoría sin acceder a ella, por lo que permanecería allí, vacía, en la lista).

:warning: ¡Haz una copia de seguridad de tu sitio antes de ejecutar los comandos!

cd /var/discourse
./launcher enter app
rails c
Category.find_by_slug('STARTING-CATEGORY-SLUG').id
Category.find_by_slug('DESTINATION-CATEGORY-SLUG').id
exit

Cambia STARTING-CATEGORY-SLUG y DESTINATION-CATEGORY-SLUG por los slugs de las categorías de origen y destino. Los resultados serán dos IDs.

rake categories:move_topics[STARTING-CATEGORY-ID,DESTINATION-CATEGORY-ID]

Por ejemplo:

rake categories:move_topics[11,27]
./launcher enter app 
rails c
c=Category.find(STARTING-CATEGORY-ID)
c.destroy

Hola @dax,

Perdón por la respuesta tardía. Probé, ejecuté y resolví mi problema con estos pasos. Muchas gracias por tu ayuda.

Quisiera devolver algo (aunque mis habilidades de programación no son muy buenas). ¿Existe alguna forma de añadir una validación para evitar que las categorías sean números? Me gustaría ayudar con eso.

Gracias a todos.

Gracias, pero nuestros ingenieros ya tienen una solución para evitar que se inserten números en los slugs de las categorías. Como has descubierto, actualmente es aceptable tener “11” como nombre de la categoría, pero el slug de la categoría deberá cambiarse a algo que no comience con un número, por ejemplo cat-11.