Iceman
(Iceman)
2019 年11 月 27 日 15:06
1
大家好,
最近升级到最新版本后,我的两个分类指向了同一个分类(比如你有分类 1 和分类 2,两者都会显示分类 1 的内容)。这种行为本身就很奇怪,因此当我试图“理清”这个问题时,我尝试修改分类 2 的配置(它是显示错误帖子的分类)。但无论重试多少次,更改都无法保存。
不过,我尝试将分类的 URL 更改为其他内容,看看是否能强制刷新或触发其他效果。现在,如果点击该分类,Discourse 会一直卡在重新加载状态,而 URL 也不会更新到该分类。所以,除非我遗漏了什么,否则我现在无法编辑该分类,因为我认为需要进入该分类才能进行编辑。
我们已经重建了实例并尝试了其他方法,但没有任何变化。大家有什么建议吗?
提前感谢。
pfaffman
(Jay Pfaffman)
2019 年11 月 27 日 15:48
2
或许可以检查一下永久链接?重命名分类时会生成永久链接。这可能是导致问题的原因(虽然如果是这个问题应该会很明显,但这只是我目前的想法)。
Iceman
(Iceman)
2019 年11 月 27 日 16:09
3
感谢你的建议 @pfaffman
确实,分类有一个固定链接,但我仍然遇到同样的奇怪行为。
在尝试修改固定链接时,我想我明白了问题所在:“分类 1”使用的是正常名称(例如:“分类”),而“分类 2”使用的是数字名称(例如:
Iceman
(Iceman)
2019 年11 月 29 日 17:08
7
再次你好,
我在我有限的知识范围内尝试了各种方法。除非有人指出一种无需访问类别即可编辑类别的方法,否则我实在想不出什么好主意……是否有一种方法可以将某个类别下的所有主题“移动”到另一个类别?
既然我似乎无法自行解决这个问题,也许一种提高可用性的折中方案是将其移动到其他类别,并暂时保留这个“僵尸”类别,直到有人想出更好的办法(因为据我回忆,如果不访问类别就无法删除它,所以它会以空列表的形式保留在类别列表中)。
dax
(Daniela)
2019 年11 月 29 日 17:42
8
在执行命令之前,请备份您的站点!
cd /var/discourse
./launcher enter app
rails c
Category.find_by_slug('STARTING-CATEGORY-SLUG').id
Category.find_by_slug('DESTINATION-CATEGORY-SLUG').id
exit
将 STARTING-CATEGORY-SLUG 和 DESTINATION-CATEGORY-SLUG 替换为起始分类和目标分类的 slug。结果将返回两个 ID。
rake categories:move_topics[STARTING-CATEGORY-ID,DESTINATION-CATEGORY-ID]
例如:
rake categories:move_topics[11,27]
Iceman:
如果不访问某个分类,就无法删除它。
./launcher enter app
rails c
c=Category.find(STARTING-CATEGORY-ID)
c.destroy
Iceman
(Iceman)
2019 年12 月 9 日 09:45
9
你好 @dax ,
很抱歉回复晚了。按照这些步骤测试、执行后,我的问题已经解决了。非常感谢你的帮助。
我想以某种方式回馈(尽管我的编程技能还不够好),有没有办法添加一个验证,防止类别被设置为数字?我想帮忙实现这个功能。
谢谢大家。
dax
(Daniela)
2019 年12 月 9 日 12:25
10
谢谢,不过我们的工程师已经提供了修复方案,以防止数字被插入到分类别名中。正如您所发现的,目前将分类名称设为“11”是可以的,但该分类的别名需要更改为不以数字开头的内容,例如 cat-11。