에러 메시지는 다음과 같았습니다:
신규 사용자는 첫날 최대 주제 수를 초과할 수 없습니다. 2시간 후 다시 입력해 주세요.
이것은 ‘첫날 최대 주제 수’ 설정에 의해 제어되는 것으로 보입니다. 이 설정을 조정하니 에러가 사라졌습니다.
문제는 해당 사용자가 이전에 8개의 주제를 생성했으며, 그중 첫 번째 주제가 4일 전이라는 점입니다. 이 설정은 사용자의 첫 게시글 이후 24시간 동안만 영향을 미쳐야 한다고 의도된 것이므로, 이 사용자는 해당 설정의 영향을 받지 않아야 한다고 생각합니다. 게시를 한 계정은 TL0 사용자입니다.
옵션 설명은 다음과 같습니다:
사용자가 첫 게시글을 생성한 후 24시간 동안 생성할 수 있는 최대 주제 수
추측컨대, 이 설정은 실제로는 'TL0 사용자의 하루 최대 게시글 수’일 수 있습니다.
‘첫날 최대 답글 수’ 설정에도 동일한 문제가 있는지 확인해 볼 가치가 있을 수 있습니다.
simon
11월 23, 2020, 11:28오후
2
네, 코드가 사용자가 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
Ed_S
(Ed S)
6월 21, 2025, 5:55오전
4
여전히 이 상태가 올바르지 않나요? 이 코드
가 제 생각에는 잘못된 것 같습니다. 사용자의 첫 게시물이 하루 이상 지난지 확인하고 있잖아요?
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
martin
(Martin Brennan)
6월 23, 2025, 1:40오전
7
글쎄요, 조금 복잡하게 얽혀 있어서 풀기가 까다로웠지만, 이 방법으로 문제를 해결할 수 있을 것 같습니다:
main ← issue/fix-new-user-posting-first-day-logic
merged 10:05PM - 23 Jun 25 UTC
All the way back in bc52bdfa1280ba08e6fb1931c26e18aa7fee9f7f we changed
the def… inition of new_user_posting_on_first_day? to return true if the
user was TL0 unconditionally. However this changes the logic of
the method, and essentially makes it "lie". Yes TL0 may be considered
a new user in other places, but in this method specifically we want
to check it's their "first day" of posting, not just that they are TL0.
The intent per these commits:
* 487c20959c874666db726d69c00abe139ba1aeab
* 5aa1272f05fc0de0b08577707d3370d10fafdd51
* 9834d1150300de26ffc35cb6af9a3ac91666e216
Was consider any user < TL2 who hadn't made their first post yet
as a new user posting on their first day. If they had made a post
>= 24 hours ago, they were no longer considered a new user posting
on their first day.
This commit restores that logic and also cleans up the spec and
guardian check to be clearer.
기본적으로 몇 년 전 new_user_posting_on_first_day?의 의도가 변경되면서 설명이나 오류 메시지와 일치하지 않게 되었습니다. 이 변경 사항은 이전 동작을 복원하며, 이 체크의 목적상 TL0 사용자를 항상 신규 사용자로 취급하지 않습니다.
3개의 좋아요