MarcP
(MarcP)
11.Ноябрь.2020 04:52:00
1
Всем привет,
Я по ошибке добавил тег A как синоним под тегом A (случайно, с телефона).
Удаление синонима выдаёт ошибку 500
Кнопка «Отвязать» выдаёт ошибку 422
Удаление тега выдаёт неизвестную ошибку
Возможно, это поможет:
Я могу переименовать тег A в B, и синоним тоже обновится.
Наличие 0 или 1 поста с тегом A не влияет на вышеуказанные ошибки.
Кто-нибудь может воспроизвести это?
2 лайка
simon
11.Ноябрь.2020 17:47:26
2
Похоже, что такое не должно быть возможно. Я предполагаю, что у вас получилось что-то вроде этого:
Я тестирую это на своём локальном сервере разработки. После создания синонима нажатие кнопки «Удалить синоним» выдаёт ошибку 422. Нажатие на значок корзины для синонима не вызывает ошибку 500, вместо этого тег полностью удаляется.
Думаю, следует добавить защиту, чтобы не позволять назначать тегу самого себя в качестве синонима.
1 лайк
MarcP
(MarcP)
11.Ноябрь.2020 17:58:13
3
Спасибо, что проверили эту проблему.
Хм, хорошо, это отличается от моей установки. У меня сейчас нет возможности удалить тег или синоним.
simon
11.Ноябрь.2020 18:00:04
4
Какая версия DIscourse установлена на вашем сайте?
1 лайк
MarcP
(MarcP)
11.Ноябрь.2020 18:30:45
5
Я только что обновился до новейшей сборки:
Поведение такое же, как в моём исходном сообщении.
1 лайк
Мы должны назначить это на следующую неделю @eviltrout . Добавление тега как синонима самого себя — это… не очень хорошо.
2 лайка
techAPJ
(Arpit Jalan)
17.Ноябрь.2020 01:26:05
9
Исправлено в:
committed 01:22AM - 17 Nov 20 UTC
https://meta.discourse.org/t/adding-synonym-to-the-same-tag-gets-stuck/169801/
Спасибо, что сообщили об этой проблеме, @MarcP .
4 лайка
techAPJ
(Arpit Jalan)
20.Ноябрь.2020 04:58:29
12
Открываю эту тему по просьбе @MarcP . Он не может удалить тег даже через консоль.
cd /var/discourse
./launcher enter app
rails c
tag = Tag.find_by_name("tag_name")
tag.destroy
Вышеуказанное не работает для Marc, хотя у меня работает. Можешь подробнее описать свою проблему, Marc?
3 лайка
MarcP
(MarcP)
20.Ноябрь.2020 20:41:22
13
Команда, которую @techAPJ прислал мне, не сработала. Однако я выполнил (немного отличающиеся) команды, найденные здесь: How can I delete a tag in development database (on local)? - #4 by simon
Я получил следующие результаты, пытаясь удалить свой тег “testing”, у которого есть синонимичный тег: “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)>
sam
(Sam Saffron)
22.Ноябрь.2020 23:27:55
14
попробуйте:
DB.exec("delete from tags where name = 'testing'")
5 лайков
MarcP
(MarcP)
23.Ноябрь.2020 17:51:54
15
Это сработало! Спасибо, Сэм Хорошей недели.
2 лайка