删除组时出现 404 错误

大家好。我需要在论坛中创建 93 个群组。我开始快速添加群组。然后当我创建一个群组并点击群组链接时,它返回了 404 错误。现在这个群组存在于群组页面上,但点击时会返回 404 错误。我无法删除。当我尝试创建另一个群组时,它返回了 500 错误。我按照官方文档的描述安装了 discourse。我正在使用 Amazon CloudFront 和 S3。

1 个赞

你好 meikici :wave:

您的群组名称/slug 是什么?您的 Discourse 论坛使用哪些语言?

您是手动通过界面创建群组的吗?

除了群组创建问题外,您还遇到其他问题吗?

使用安全模式时问题是否仍然存在?

3 个赞

你好 @Canapin :wave:

我的论坛是土耳其语的。有一个名为 group slug 的土耳其语字符。但是,由于 URL 中使用了 ASCII 字符,这不成问题。已经有其他包含土耳其语字符的群组。我的问题实际上是:我的两个群组在群组页面上显示 404 错误,我想删除它们。我该如何删除?

除了群组问题,没有其他问题。我现在实际上可以创建群组。

1 个赞

哪些不工作的组的名称和 slug 是什么?日志中有错误吗?

你可以在 Rails 中像这样销毁它们。

cd /var/discourse
./launcher enter app
rails c
g=Group.find(123)
g.destroy
2 个赞

日志中确实有一个组出现错误的记录。

ActiveRecord::RecordNotUnique (PG::UniqueViolation: ERROR: duplicate key value violates unique constraint \"index_groups_on_name\" DETAIL: Key (name)=(İstanbul) already exists. ) app/controll

1 个赞

您遇到的问题让我想起了这个关于类别名称的问题:

不确定是否相关,但也许您可以看一下。

4 个赞

我更改了字符编码方法,但仍然是 404。

1 个赞

你可以在 rails 控制台执行 Group.pluck(:id, :name) 来返回群组名称和 ID,看看是否有任何异常?

或者,在数据浏览器中执行 SELECT id, name FROM groups

3 个赞

使用此方法,我删除了两个返回 404 错误的组中的一个,但还有一个仍然存在。我不知道该组的 ID,也找不到它。

如何查找返回 404 的组的 ID?

您试过这个吗?

1 个赞

@pfaffman @Canapin 感谢您的帮助。我已删除有问题的群组。

2 个赞

很高兴听到这个消息。 :+1:

有趣的是,我想知道如何导致了重复的组名(如果这是问题所在)。
它们应该是唯一的,甚至不能用 rails 命令重命名为已存在的名称。

您还记得任何可能导致这种情况的原因吗?

是否因为您创建了名称相似的组,以便在删除特殊字符时尝试创建两个具有相同 slug 的组?如果是这样,那是一个 bug。如果您能说明如何重现它,就有可能修复它。

1 个赞

我尝试重现类似的情况,但组名(据我所知就是 slug)必须在创建组之前设置:
image

并且“只能包含数字、字母、连字符、点和下划线”

允许的 unicode 用户名字符 似乎不影响组名,界面语言也是如此。

:person_shrugging:

根据在另一个论坛上的测试,我不确定该设置会影响什么,但启用Unicode 用户名确实允许组名中包含 Unicode 字符,这是否可能导致此问题?

在我之前创建的分组名称中存在 Unicode 字符,并且该 slug 已自动更正了它。在我后来创建的分组中,我发现它没有这样做。

不,不,我不记得了。我太忙了,创建分组的速度太快了 :slight_smile:

1 个赞

是的,没错。我在创建组时注意到了这一点。

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.