首日主题数达上限错误,首个主题创建4天后出现

错误消息是:

您已达到新用户在第一天可以创建的主题数量上限。请等待 2 小时后再输入。

这似乎是由“第一天最大主题数”控制的——调整此设置消除了错误。

问题是,该用户有 8 个先前的主题,第一个是 4 天前。所以我认为他们不应该受到此设置的影响,因为它的目的是仅影响用户第一帖后的 24 小时。发帖账户是 TL0 用户。

选项描述是:

用户在创建第一帖后的 24 小时内允许创建的最大主题数

我猜测该设置可能实际上是“TL0 用户每天最大发帖数”。

值得检查“第一天最大回复数”设置是否也是如此。

是的,代码似乎是在检查用户是否为 TL0 级别,而不是检查该用户是否处于在站的首个 24 小时内。如果是这种情况,或许应该修改向用户显示的消息。不过,达到 TL1 的默认要求其实相当低。因此,在大多数情况下,将 TL0 用户视为新用户是合理的。

1 个赞

@simon 是的,我正在尝试调整用户达成 TL1+ 的难度。

如果这些设置的功能保持不变(假设首日最大回复数的情况也是如此),我认为将其重命名为与其他“新用户”设置保持一致会比较好。同时,正如你提到的,也需要更新给用户的消息以及设置说明。

例如:
首日最大主题数 → 新用户每日最大主题数
首日最大回复数 → 新用户每日最大回复数

这是否仍然不符合要求? 这段代码
在我看来是错误的,检查用户的第一篇帖子是否超过一天了?

 def new_user_posting_on_first_day?
    !staff? && trust_level < TrustLevel[2] &&
      (
        trust_level == TrustLevel[0] || self.first_post_created_at.nil? ||
          self.first_post_created_at >= 24.hours.ago
      )
  end

好的,这个有点棘手,但我认为这可以解决问题:

基本上,我们几年前改变了 new_user_posting_on_first_day? 的意图,使其与描述和错误不符。这恢复了旧的行为,并且在本次检查的目的下,不会一直将 TL0 用户视为新用户。

3 个赞