Я нашел эту тему при поиске перед созданием отчёта об ошибке, поэтому добавляю информацию сюда.
TL;DR: запрос для уведомления составлен неверно, так как он учитывает и отклонённых пользователей.
Уведомление: 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, я получаю 2 пользователей, которых действительно нужно одобрить (статус 0), и 14 пользователей, которые уже были отклонены (статус 2):
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]]