大家好,
我不小心在标签 A 下将标签 A 添加为同义词(在手机上误操作)。
- 删除同义词时报错 500
- 取消关联按钮时报错 422
- 删除标签时出现未知错误
可能有帮助的信息:
- 我可以将标签 A 重命名为 B,同义词也会随之更新。
- 标签 A 下是否有 0 篇或 1 篇帖子,对以上错误没有影响。
有人能复现这个问题吗?
大家好,
我不小心在标签 A 下将标签 A 添加为同义词(在手机上误操作)。
可能有帮助的信息:
有人能复现这个问题吗?
这似乎是不应该发生的情况。我猜你最终得到了类似这样的结果:
我在我本地的开发站点上测试了这一点。创建同义词后,点击“移除同义词”按钮会返回 422 错误。点击同义词旁边的垃圾桶图标不会返回 500 错误,而是直接删除了整个标签。
我认为应该添加一些保护机制,以防止将某个标签设置为它自己的同义词。
感谢检查此问题。
嗯,好的,这与我当前的安装情况不同。我目前无法删除该标签或同义词。
你的网站使用的是哪个版本的 Discourse?
我们下周再处理这个吧,@eviltrout。将标签设为自身的同义词……这不太好。
已通过以下方式修复:
感谢 @MarcP 报告此问题。![]()
按照 @MarcP 的请求开启此话题。他无法删除该标签,即使通过控制台也不行。
cd /var/discourse
./launcher enter app
rails c
tag = Tag.find_by_name("tag_name")
tag.destroy
上述方法对我有效,但对 Marc 无效。Marc,能否在此详细说明一下你的问题?
@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)>
尝试:
DB.exec("delete from tags where name = 'testing'")
这行得通!谢谢 Sam
祝你一周愉快。