Здравствуйте,
У меня возникла проблема с admin_detailed_user_serializer, из-за которой возникают ошибки 500, когда администратор пытается просмотреть пользователя через поиск пользователей. Ошибка 500 также возникает при выполнении GET-запросов к API по адресу https://mycommunity/admin/users/2000020409.json. Ниже приведено исключение из логов. Около 50% пользователей подвержены этой ошибке. Я пытался сравнить работающих и неработающих пользователей в базе данных, но не смог понять, в чём может быть проблема. Подозреваю, что это последствие миграции пользователей из другой системы, которую я проводил.
Вот шаги моей миграции данных:
- Ручное внесение данных в таблицы
users,user_profiles,user_emailsиuser_stats. - Изначально у всех пользователей был адрес электронной почты вида ‘someid@example.com’.
- Затем я обновил таблицу
user_emailsдля пользователей, чтобы указать правильные адреса. - После этого я заметил, что 50% этих пользователей нельзя просмотреть из списка пользователей в админ-панели. Однако, если щёлкнуть правой кнопкой мыши по их имени в списке профилей, чтобы открыть карточку профиля, можно кликнуть внутри неё и перейти к профилю без проблем. Вы можете вносить изменения в профиль, но если попытаться назначить кого-либо администратором, вы получите ту же ошибку 500, которую я указал ниже.
Кто-нибудь знает, что именно проверяет этот код? Я предполагаю, что у некоторых пользователей отсутствует критически важный фрагмент данных, вызывающий это исключение 500. Есть ли у кого-нибудь какие-либо предположения? Я новичок в Discourse, и любая помощь будет очень кстати.
Спасибо!
app/serializers/admin_user_list_serializer.rb:95:in `time_read'
(eval):27:in `_fast_attributes'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:468:in `rescue in attributes'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:455:in `attributes'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:480:in `_serializable_hash'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:359:in `serializable_hash'
active_model_serializers (0.8.4) lib/active_model/array_serializer.rb:89:in `block in _serializable_array'
activerecord (7.0.4.3) lib/active_record/relation/delegation.rb:88:in `each'
activerecord (7.0.4.3) lib/active_record/relation/delegation.rb:88:in `each'
active_model_serializers (0.8.4) lib/active_model/array_serializer.rb:79:in `map'
active_model_serializers (0.8.4) lib/active_model/array_serializer.rb:79:in `_serializable_array'
active_model_serializers (0.8.4) lib/active_model/array_serializer.rb:73:in `serializable_array'
active_model_serializers (0.8.4) lib/active_model/array_serializer.rb:53:in `as_json'
app/serializers/admin_detailed_user_serializer.rb:166:in `similar_users'
(eval):72:in `_fast_attributes'
active_model_serializers (0.8.4