알림에 X 사용자 승인이 필요하다고 표시되지만 사용자가 없음

버그 보고를 작성하기 전에 검색하다가 이 주제를 발견하여 추가합니다.

요약하자면, 알림 쿼리가 거부된 사용자도 함께 집계하고 있어 잘못된 결과를 반환하고 있습니다.

알림 내용: 승인 대기 중인 사용자 16명, 링크를 클릭하면 2명만 보입니다.

알림에 사용되는 쿼리는 다음과 같습니다.

puts AdminUserIndexQuery.new(query: "pending", stats: false).find_users_query.to_sql

SELECT "users".* FROM "users" 
WHERE (suspended_till IS NULL OR suspended_till <= '2023-11-13 11:05:23.225614') 
AND "users"."approved" = FALSE 
AND "users"."active" = TRUE 
ORDER BY users.created_at DESC,users.username

제 경우 이 쿼리는 16명의 사용자를 반환합니다.

[4479, 4472, 4456, 4446, 4443, 4430, 4302, 4291, 4206, 4199, 4178, 4168, 4131, 4061, 3677, 3642]

이 ID들을 Reviewables 큐에 넣으면 실제로 승인(상태 0)이 필요한 사용자는 2명이고, 이미 거부(상태 2)된 사용자는 14명인 것을 확인할 수 있습니다.

ReviewableUser.where(type: 'ReviewableUser')
  .where(target_id: ids)
  .pluck(:target_id, :status)

[[3642, 2], [3677, 2], [4061, 2], [4131, 2], [4168, 2], 
[4178, 2], [4199, 2], [4206, 2], [4291, 2], [4302, 2], 
[4430, 2], [4443, 2], [4446, 2], [4456, 2], [4472, 0], [4479, 0]]
2개의 좋아요