В моем действии индекса пользователя Я выполняю запрос, который находит всех пользователей, принадлежащих к тому же городу, что и current_user
, и противоположный пол и сортирует результат по profile_update_at
в заказе DESC
. Запрос работает просто отлично. Приложение в настоящее время работает в 3 городах. Таким образом, каждый мужчина из City A, по сути, выполняет тот же запрос, а также для женщин из города A.Стратегия кэширования Rails для действия индекса
Я хочу, чтобы иметь возможность кэшировать этот запрос в течение примерно 5 минут. Как я могу это сделать? Какого типа кеширования я должен использовать? Поскольку запрос зависит от города и пола от current_user
, будет ли кеш, созданный для пользователя из города A, вмешиваться в запрос пользователя из City B? Или будет создан новый кеш для пользователя из города B.
Вы передаете город и пол для извлечения функции. Они используются для создания кеш-ключа. Если такой ключ хранится, рельсы возвратят его значение без запроса db, иначе он запустит блок и сохранит возвращаемое значение для хранения. – Berlin
@pratski прочитал мое обновление – Berlin
показывает, что он кэширует, но он повторно запускает запрос. Кроме того, это не кэширование, поскольку, если результаты обновляются в течение 5 минут, он показывает обновления. – pratski