Adicionar sinônimo à mesma tag trava

Olá a todos,

Acidentalmente adicionei a tag A como sinônimo da tag A (por engano, pelo celular).

  • Ao tentar excluir o sinônimo, ocorre erro 500.
  • O botão de desvincular gera erro 422.
  • Ao tentar excluir a tag, aparece um erro desconhecido.

Pode ser útil saber:

  • Se renomeio a tag A para B, o sinônimo também é editado.
  • Ter 0 ou 1 post com a tag A não faz diferença nos erros mencionados acima.

Alguém consegue reproduzir isso?

2 curtidas

Parece algo que não deveria ser permitido acontecer. Estou assumindo que você acabou com algo assim:

Estou testando isso no meu site de desenvolvimento local. Após criar o sinônimo, clicar no botão “Remover Sinônimo” gera um erro 422. Clicar no ícone de lixeira para o sinônimo não gera um erro 500; em vez disso, ele exclui completamente a tag.

Acho que deveria ser adicionada alguma proteção para impedir que uma tag seja definida como seu próprio sinônimo.

1 curtida

Obrigado por verificar essa questão.

Hmm, ok, isso é diferente da minha instalação. No momento, não tenho como excluir a tag ou o sinônimo.

Qual versão do Discourse seu site está usando?

1 curtida

Acabei de atualizar para a versão mais recente:

2.6.0.beta5 ( 811c610108 )

O comportamento é o mesmo do meu OP.

1 curtida

Deveríamos atribuir isso na próxima semana @eviltrout, adicionar uma tag como sinônimo dela mesma é… não é bom.

2 curtidas

Corrigido via:

Obrigado por relatar esse problema, @MarcP. :+1:

4 curtidas

Abrindo este tópico por solicitação do @MarcP. Ele não consegue excluir a tag, mesmo pelo console.

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

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

O comando acima não está funcionando para o Marc, embora funcione para mim. Você pode detalhar mais o seu problema aqui, Marc?

3 curtidas

O comando @techAPJ me enviou não funcionou para mim, mas executei os comandos (ligeiramente diferentes) encontrados em: How can I delete a tag in development database (on local)? - #4 by simon

Obtive os seguintes resultados, tentando excluir minha tag “testing”, que possui uma tag sinônima: “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: nível de pilha muito profundo
de /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)>

Tente:

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

Isso funcionou! Obrigado, Sam :slight_smile: Tenha uma ótima semana.

2 curtidas