Añadir sinónimo a la misma etiqueta se atasca

Hola a todos,

Por error añadí la etiqueta A como sinónimo bajo la etiqueta A (fue un accidente, lo hice desde el móvil).

  • Al intentar eliminar el sinónimo aparece un error 500.
  • El botón de desvincular muestra un error 422.
  • Al intentar eliminar la etiqueta aparece un error desconocido.

Podría ser útil saber que:

  • Si renombro la etiqueta A a B, el sinónimo también se edita.
  • Tener 0 o 1 publicación con la etiqueta A no cambia los errores mencionados.

¿Alguien puede reproducir esto?

2 Me gusta

Parece algo que no debería permitir que ocurra. Supongo que terminaste con algo como esto:

Lo estoy probando en mi sitio de desarrollo local. Después de crear el sinónimo, hacer clic en el botón “Eliminar sinónimo” genera un error 422. Hacer clic en el icono de la papelera para el sinónimo no me da un error 500, en su lugar elimina completamente la etiqueta.

Creo que debería agregarse alguna protección para evitar que una etiqueta se establezca como su propio sinónimo.

1 me gusta

Gracias por revisar este problema.

Hmm, vale, eso es diferente a mi instalación. En este momento no tengo forma de eliminar la etiqueta ni el sinónimo.

¿En qué versión de Discourse está tu sitio?

1 me gusta

Acabo de actualizar a la versión más reciente:

2.6.0.beta5 ( 811c610108 )

El comportamiento es el mismo que en mi publicación original.

1 me gusta

Deberíamos asignar esto la próxima semana @eviltrout, añadir una etiqueta como sinónimo de sí misma es… no es bueno.

2 Me gusta

Corregido mediante:

Gracias por reportar este problema @MarcP. :+1:

4 Me gusta

Abro este tema por solicitud de @MarcP. No puede eliminar la etiqueta, ni siquiera mediante la consola.

cd /var/discourse
./launcher enter app
rails c

tag = Tag.find_by_name("tag_name")
tag.destroy

Lo anterior no funciona para Marc, aunque sí funciona para mí. ¿Puedes ampliar tu problema aquí, Marc?

3 Me gusta

El comando @techAPJ me envió no funcionó para mí, sin embargo, ejecuté los comandos (ligeramente diferentes) que se encuentran en: How can I delete a tag in development database (on local)? - #4 by simon

Obtuve los siguientes resultados al intentar eliminar mi etiqueta “testing”, que tiene una etiqueta sinónimo: “testing”.

[1] pry(main)> t = Tag.find_by_name('testing')
=> #<Tag:0x000055a268f6f990
 id: 35,
 name: "testing",
 topic_count: 0,
 created_at: Wed, 11 Nov 2020 04:38:06 UTC +00:00,
 updated_at: Thu, 19 Nov 2020 03:44:35 UTC +00:00,
 pm_topic_count: 0,
 target_tag_id: 35>
[2] pry(main)> t.destroy!
SystemStackError: nivel de pila demasiado profundo
desde /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.3/lib/active_record/reflection.rb:120:in `_reflect_on_association'
[3] pry(main)>

intento:

DB.exec("delete from tags where name = 'testing'")
5 Me gusta

¡Esto funcionó! Gracias, Sam. Que tengas una buena semana.

2 Me gusta