错误消息是:
您已达到新用户在第一天可以创建的主题数量上限。请等待 2 小时后再输入。
这似乎是由“第一天最大主题数”控制的——调整此设置消除了错误。
问题是,该用户有 8 个先前的主题,第一个是 4 天前。所以我认为他们不应该受到此设置的影响,因为它的目的是仅影响用户第一帖后的 24 小时。发帖账户是 TL0 用户。
选项描述是:
用户在创建第一帖后的 24 小时内允许创建的最大主题数
我猜测该设置可能实际上是“TL0 用户每天最大发帖数”。
值得检查“第一天最大回复数”设置是否也是如此。
错误消息是:
您已达到新用户在第一天可以创建的主题数量上限。请等待 2 小时后再输入。
这似乎是由“第一天最大主题数”控制的——调整此设置消除了错误。
问题是,该用户有 8 个先前的主题,第一个是 4 天前。所以我认为他们不应该受到此设置的影响,因为它的目的是仅影响用户第一帖后的 24 小时。发帖账户是 TL0 用户。
选项描述是:
用户在创建第一帖后的 24 小时内允许创建的最大主题数
我猜测该设置可能实际上是“TL0 用户每天最大发帖数”。
值得检查“第一天最大回复数”设置是否也是如此。
是的,代码似乎是在检查用户是否为 TL0 级别,而不是检查该用户是否处于在站的首个 24 小时内。如果是这种情况,或许应该修改向用户显示的消息。不过,达到 TL1 的默认要求其实相当低。因此,在大多数情况下,将 TL0 用户视为新用户是合理的。
@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 用户视为新用户。