Aggiungere un sinonimo allo stesso tag si blocca

Ciao a tutti,

ho aggiunto per errore il tag A come sinonimo sotto il tag A (per sbaglio, da telefono).

  • Elimina sinonimo restituisce l’errore 500
  • Il pulsante Scollega restituisce l’errore 422
  • Elimina tag restituisce un errore sconosciuto

Potrebbe essere utile sapere che:

  • Posso rinominare il tag A in B e anche il sinonimo viene modificato.
  • Avere 0 o 1 post con il tag A non cambia gli errori sopra menzionati.

Qualcuno riesce a riprodurre questo problema?

2 Mi Piace

Sembra qualcosa che non dovrebbe essere permesso. Immagino che tu ti sia trovato di fronte a una situazione del genere:

Sto testando questo sul mio sito di sviluppo locale. Dopo aver creato il sinonimo, cliccando sul pulsante “Rimuovi sinonimo” ottengo un errore 422. Cliccando sull’icona del cestino per il sinonimo non ricevo un errore 500, ma invece il tag viene completamente eliminato.

Penso che sia necessario aggiungere una protezione per impedire che un tag venga impostato come suo stesso sinonimo.

1 Mi Piace

Grazie per aver verificato questa problematica.

Hmm, ok, è diverso dalla mia installazione. Al momento non ho modo di eliminare il tag o il sinonimo.

Quale versione di DIscourse utilizza il tuo sito?

1 Mi Piace

Ho appena aggiornato all’ultima build:

2.6.0.beta5 ( 811c610108 )

Il comportamento è lo stesso del mio post originale.

1 Mi Piace

Dovremmo assegnarlo la prossima settimana @eviltrout, aggiungere un tag come sinonimo di se stesso è… non una buona idea.

2 Mi Piace

Risolto tramite:

Grazie per aver segnalato questo problema @MarcP. :+1:

4 Mi Piace

Apertura di questa discussione su richiesta di @MarcP. Non riesce a eliminare il tag, nemmeno tramite console.

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

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

Quanto sopra non funziona per Marc, mentre funziona per me. Puoi approfondire il problema qui, Marc?

3 Mi Piace

Il comando @techAPJ mi ha inviato non ha funzionato per me, tuttavia ho eseguito i comandi (leggermente diversi) trovati in: How can I delete a tag in development database (on local)? - #4 by simon

Ho ottenuto i seguenti risultati, cercando di eliminare il mio tag “testing” che ha un tag sinonimo: “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: stack level too deep
from /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)>

prova:

DB.exec("delete from tags where name = 'testing'")
5 Mi Piace

Ha funzionato! Grazie Sam :slight_smile: Buona settimana.

2 Mi Piace