첫 주제 게시 4일 후 '첫날 최대 주제 수' 오류 발생

에러 메시지는 다음과 같았습니다:

신규 사용자는 첫날 최대 주제 수를 초과할 수 없습니다. 2시간 후 다시 입력해 주세요.

이것은 ‘첫날 최대 주제 수’ 설정에 의해 제어되는 것으로 보입니다. 이 설정을 조정하니 에러가 사라졌습니다.

문제는 해당 사용자가 이전에 8개의 주제를 생성했으며, 그중 첫 번째 주제가 4일 전이라는 점입니다. 이 설정은 사용자의 첫 게시글 이후 24시간 동안만 영향을 미쳐야 한다고 의도된 것이므로, 이 사용자는 해당 설정의 영향을 받지 않아야 한다고 생각합니다. 게시를 한 계정은 TL0 사용자입니다.

옵션 설명은 다음과 같습니다:

사용자가 첫 게시글을 생성한 후 24시간 동안 생성할 수 있는 최대 주제 수

추측컨대, 이 설정은 실제로는 'TL0 사용자의 하루 최대 게시글 수’일 수 있습니다.

‘첫날 최대 답글 수’ 설정에도 동일한 문제가 있는지 확인해 볼 가치가 있을 수 있습니다.

네, 코드가 사용자가 TL0인지 확인하는 것 같고, 사이트 가입 후 첫 24시간 이내인지 확인하지는 않는 것으로 보입니다. 그렇다면 사용자에게 표시되는 메시지도 수정해야 할 수 있습니다. 다만 TL1을 달성하는 기본 요건은 비교적 낮습니다. 대부분의 경우 TL0 사용자를 신규 사용자로 간주하는 것이 맞을 것이라고 생각합니다.

1개의 좋아요

@simon 네, 사용자가 TL1+를 달성하기 위한 난이도를 조정하는 실험을 하고 있습니다.

이 설정들의 기능이 그대로 유지된다면(첫날 최대 답변 수도 동일한 경우라고 가정할 때), 다른 ‘newuser’ 설정들과 일관성을 유지하도록 이름을 바꾸는 것이 좋을 것 같습니다. 또한 언급하신 대로 사용자에게 보내는 메시지와 설정 설명도 업데이트해야 합니다.

예를 들어:
max topics in first day → newuser max topics per day
max replies in first day → newuser max replies per day

여전히 이 상태가 올바르지 않나요? 이 코드
가 제 생각에는 잘못된 것 같습니다. 사용자의 첫 게시물이 하루 이상 지난지 확인하고 있잖아요?

 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개의 좋아요