Рельсы Результаты поиска со случайным географическим городом

У меня есть приложение с поиском, который получает пользователей. Когда current_user выполняет поиск, он извлекает случайных пользователей из базы данных. Затем он извлекает местоположения в пределах X миль от местоположения current_user из базы данных и сохраняет их в @locations. Когда отображаются результаты, местоположение пользователя является случайным из @locations (@location.sample.city).

Мой вопрос: что было бы лучшим способом для кеширования результатов. Например, если поиск вернул местоположение пользователя User2 в Nantucket, то при повторном поиске или обновлении страницы у пользователя User2 по-прежнему будет Nantucket, а не другое случайное местоположение.

Заранее спасибо.

1 ответ

Вы можете использовать user_id в качестве ключа кеша, а затем сохранить в нем случайное местоположение, чтобы при обновлении страницы вы просто возвращали местоположение, сохраненное в кеше, и, если нет, будет назначено новое местоположение. например:

Rails.cache.fetch('location_#{userid}') { @locations.sample.city }
Другие вопросы по тегам