我设法解决了这个问题,但觉得还是值得报告一下。
我尝试将父类别 cat-B 分配给 cat-A,而 cat-A 中已经包含了 3 个子类别。Discourse 系统弹出了一个错误消息,提示类似“无法移动子类别”的内容。因此我推测,类别之间的嵌套层级可能存在数量限制。
我认为这没问题,于是决定先为那 3 个子类别重新分配父类别。但当我尝试这样做时,却遇到了如下异常错误:
控制台对以 c/cat-B/cat-A/subcategory/edit/find_by_slug.json 结尾的 URL 返回了 404 错误。
cat-A 的另外两个子类别也出现了类似的错误。
正确的 URL 应该是 c/cat-A/subcategory/edit,不应包含 cat-B。于是我手动输入了该格式的 URL,成功进入了正常的类别设置页面。通过这种方式,我修复了所有 3 个子类别以及 cat-A。
这大概只是一个未来值得修复的小漏洞:muscle:
2 个赞
simon
2
您知道您的 Discourse 站点使用的是哪个版本吗?如果您的站点是自托管的,您可以在站点管理仪表板的顶部附近找到版本号。我之所以询问这个,是因为我认为 Discourse 本应阻止您添加父分类。当我尝试这样做时,会出现以下错误:
您可能遇到了一个在较新版本的 Discourse 中已修复的漏洞。也有可能我没有正确复现该问题。
3 个赞
我在 /logs 中没有看到任何相关的错误详情。我不是开发人员,所以可能遗漏了什么。
不过,我成功复现了这个错误,而且看起来相当一致。我也检查了 /logs,那里没有任何新内容。
这是我尝试将一个已有子分类的类别分配给新的父类别时收到的消息:
以下是之后发生情况的更多细节:
1. 关于 Cat-A
即那个我尝试为其分配新父类别的、已包含子分类的类别
- Cat-A 在分类主页上正常显示。浏览 Cat-A 及其子分类的行为也一切正常。
- Cat-A 不再出现在“所有分类”下的主导航菜单中
- 当编辑 Cat-A 时,会出现一个 404 错误,提示该页面不可见。
2. 关于 Cat-B
这是我尝试将 Cat-A 分配到的目标类别
- Cat-A 出现在 Cat-B 的下拉列表中
- 当编辑 Cat-B 时,一切正常
3. 关于子分类
哎呀,写完这些之后,错误竟然神奇地自行修复了,我甚至不需要使用手动输入 URL 的变通方法。看来现在一切正常了,各位!
2 个赞