Поиск в шинах: удаление записи из модели и немедленное перенаправление приводит к ошибке

У меня модель по имени User, Когда я уничтожаю пользователя и перенаправляю на страницу индекса пользователя, возникает исключениеActiveRecord::RecordNotFound: Couldn't find all Users with IDs (1, 200) (found 1 results, but was looking for 2) Но когда я обновляю страницу, страница загружается правильно и отображает всех пользователей. Проблема, я думаю, Tire::Model::Callbacks after_destroy занимает некоторое время, чтобы выполнить, и если я позвоню User.search_all в течение этого периода времени производится поиск результата, включая уничтоженный идентификатор. Я ищу чистый подход для преодоления этой проблемы. Или у Tire есть возможность решить эту проблему? Заранее спасибо.

1 ответ

Перед вызовом User.search_all отправьте запрос на обновление Elasticsearch. Elasticsearch refresh_interval по умолчанию равен 1 секунде, поэтому, если вы удалите его и выполните поиск менее чем за секунду, у него может не быть возможности удалить удаленную запись, прежде чем вы вернете результаты.

Другие вопросы по тегам