Rails.cache.fetch возвращает ноль - PullRequest
0 голосов
/ 12 мая 2019

Я пытаюсь реализовать кеш в моем приложении rails 4.Я установил redis, настроил конфигурацию в соответствии с этой статьей , но каждый раз, когда я пытаюсь что-то кэшировать в своем контроллере, при первом обновлении я получаю данные, а во втором - ноль.Когда я захожу в Redis Cli и я выполняю KEYS *, я вижу, что ключ есть.

Я думал, что это моя проблема с Redis, поэтому я отключил Redis и в development.rb поставил только

config.cache_store = :memory_store, { size: 128.megabytes }

но если я попытаюсь

Rails.cache.fetch("dashboard") do
   User.where(:active=>true).size
end

я получу ноль в качестве ответа на мое действие.

Что я делаю не так, что кеш возвращает мне всегда ноль?

Править: это часть моего файла development.rb для redis

config.cache_store = :redis_store, {
  expires_in: 1.hour,
  namespace: 'cache',
  redis: { host: 'localhost', port: 6379, db: 0 },
  }

1 Ответ

0 голосов
/ 04 июня 2019

Это ничего, кроме кеша не сохраняется. Следовательно, вы должны проверить конфигурации для этого. Например, в вашем файле среды вы должны иметь следующий фрагмент кода:

config.action_controller.perform_caching = true
config.cache_store = :media_store

: media_store - зависит от того, где вы собираетесь хранить кеш.

...