Estou limpando algumas tags e não tive problemas até esta tag, que tem 2400 tópicos anexados a ela. Recebo a mensagem genérica “Desculpe, ocorreu um erro” e nada nos logs. Posso excluí-la no backend ou há algo mais que eu possa tentar? Ela não tem caracteres especiais, é simplesmente ig
Deveria ser possível excluí-lo através do console do Rails, mas você poderia tentar removê-lo em massa de lotes de tópicos primeiro para tentar fazer isso de forma mais limpa através da interface do usuário?
Obrigado, mas não vejo como fazer isso em massa. Posso remover todas as tags, mas não há opção para remover uma única tag quando os tópicos têm várias tags.
Estou procurando uma maneira de excluir 2 tags, uma tem 5818 entradas e a outra 1604.
Estas são as que vieram de uma importação do xenForo e não são necessárias.
Acho que há duas maneiras de remover essas tags de seus tópicos associados no console do Rails, uma sendo “mais suave” que a outra. É uma boa ideia fazer um backup primeiro - veja aqui sobre como fazer comandos do Rails: Administrative Bulk Operations.
para cada tag, entre no console do Rails:
cd /var/discourse
./launcher enter app
rails c
encontre e remova a tag de seus tópicos
NOME_DA_TAG = "seu_nome_de_tag" # Substitua pelo nome da sua tag
TAG = Tag.find_by(name: NOME_DA_TAG)
Topic.joins(:tags).where(tags: { name: NOME_DA_TAG }).each do |topic|
topic.tags.delete(TAG)
topic.save
end
repita para a segunda tag
então você deve ser capaz de remover essas tags através da UI
Método alternativo mais rápido e arriscado (eu faria do jeito acima)
Mas em vez dos passos 2 e 4, acho que você também pode fazer isso para cada tag após entrar no console do Rails.
t = Tag.find_by_name('seu_nome_de_tag')
t.destroy!
Muito obrigado, funcionou na primeira tentativa. Escolhi a primeira forma e depois apaguei as tags pela interface quando elas não estavam mais atribuídas a lugar nenhum.