如何重置多个主题的置顶日期

如何重置多个主题的顶贴日期

我不知道具体使用场景是什么,但在我看来,就使用 Web 界面而言,重置各个主题的置顶日期应该很容易实现。我不明白“批量重置置顶日期”功能为何会有必要,更不用说它是否常见到需要专门提供界面了。

无论如何,如果你 somehow 陷入了需要批量处理的境地,应该可以通过命令行界面(CLI)来实现。

谢谢回复。

我使用一个机器人从 RSS 博客/播客抓取内容到 Discourse。当源更新时,相关话题会自动更新并置顶。目前我需要逐个手动重置,所以如果能批量重置会更方便。

您提到的 CLI 是什么意思?是指通过数据库进行批量重置吗?谢谢。

我刚才正在找这个功能。

这是因为我在整理和重新安排论坛内容时,大量旧帖子被顶到了顶部。现在我不得不逐个进入帖子并重置置顶时间。

https://github.com/discourse/discourse/blob/master/app/models/topic.rb

如果我没理解错的话,Topics 表中有一个 bumped_at 字段,其类型为 datetime,且不能为空。该字段的初始非空值即为 created_at 非空值。据我所知,该 datetime 值是 Ruby 的 now 方法获取的当前时间。

我认为,如果你能尽可能明确以下几点:

  • 操作前是什么状态
  • 你具体做了什么
  • 你希望达到什么目的

那么你就有很大机会构造出一个合适的查询语句。多少数据量算“大量”?如果只是一次性操作,也许直接手动处理会更简单。

(遗憾的是,并没有一个名为 “prior_to_bump_date” 的字段 :sadpanda:

我也是!

如何从 rails 控制台手动重置“bump date”?将相关主题的 bumped_at 恢复为 updated_at