# 如果事件描述超过1000个字符，事件会静默失败

**URL:** <https://meta.discourse.org/t/event-silently-fails-if-description-is-longer-than-1000-characters/410769>\
**Category:** Bug\
**Tags:** events\
**Created:** [2026年八月24日 08:25 UTC](https://meta.discourse.org/t/event-silently-fails-if-description-is-longer-than-1000-characters/410769 "2026-08-24T08:25:22Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![RGJ](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/rgj/32/523185_2.png) [@RGJ](https://meta.discourse.org/u/RGJ)\
**Post date:** [2026年八月24日 08:25 UTC](https://meta.discourse.org/t/event-silently-fails-if-description-is-longer-than-1000-characters/410769/1 "2026-08-24T08:25:22Z")

</div>

### 摘要：

如果活动描述超过 1000 个字符，它要么显示为空白，要么显示之前的活动描述。

这是由 `discourse_post_event_events` 表中的硬性限制引起的：`description` 字段类型为 `character varying(1000)`。

### 复现步骤 #1

- 创建一个活动
- 使活动描述（`[event]` 和 `[/event]` 之间的文本）超过 1000 个字符
- 活动描述将不会在渲染后的帖子中显示

### 复现步骤 #2

- 创建一个活动
- 使活动描述（`[event]` 和 `[/event]` 之间的文本）少于 1000 个字符
- 编辑该活动
- 使活动描述（`[event]` 和 `[/event]` 之间的文本）超过 1000 个字符
- 渲染后的帖子中将显示之前的活动描述

这也可能导致搜索投毒（search poisoning）。

### 相关

`url` 和 `location` 字段似乎也存在同样的问题。

### 预期行为

以下之一：

a) 活动描述应无长度限制  
b) 当活动描述过长时，应显示明确的警告  
c) 在渲染时截断活动描述（但 Markdown 中仍保留完整文本）

---

<div class="post-metadata">

**Author:** ![Lou](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/lou/32/544605_2.png) [@Lou](https://meta.discourse.org/u/Lou)\
**Post date:** [2026年八月24日 10:49 UTC](https://meta.discourse.org/t/event-silently-fails-if-description-is-longer-than-1000-characters/410769/3 "2026-08-24T10:49:33Z")

</div>

谢谢。

在我看来，选项（c）在没有警告的情况下也是不够的。如果让我投票的话，（a）是最佳方案。

---

<div class="post-metadata">

**Author:** ![pacharanero](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pacharanero/32/500583_2.png) [@pacharanero](https://meta.discourse.org/u/pacharanero)\
**Post date:** [2026年八月24日 15:31 UTC](https://meta.discourse.org/t/event-silently-fails-if-description-is-longer-than-1000-characters/410769/4 "2026-08-24T15:31:34Z")

</div>

已在最新版本上复现，今天测试的。有用户报告了一个问题：事件（Event）卡片无法显示，原因不明。主题保存正常，原始帖子中的事件标记也是正确的，但无论是在主题内还是其他地方，都没有出现事件卡片。没有编辑器警告、保存错误、浏览器控制台错误或相关的 `/logs` 条目。

我倾向于方案 b)：提供一个明确的警告或验证错误。

顺便说一下，如果由于其他任何原因导致事件标记无法正确解析，也会出现完全相同的行为（卡片静默失败，无法显示）。几个月前我在调查的一个案例中，一位用户非常用心地在 Word 中准备好了事件标记，然后将其复制粘贴到 Discourse 中，结果 `data=` 项周围自动变成了“智能引号”，随之而来的后果可想而知。

所以，是的，一个可见的错误提示，哪怕只是在控制台中显示，都会非常非常棒。
