Кеш Rails 3 отсутствует на activerecord - PullRequest
1 голос
/ 27 апреля 2011

Я сталкиваюсь с ситуацией, когда каждый запрос к кешированному объекту ActiveRecord вызывает промах кэша. Я пытаюсь кэшировать структуру разрешений текущего пользователя:

my_permissions = Rails.cache.fetch("#{self.id}.permissions") do      
  self.permissions.all
end

Я обнаружил, что каждый запрос к странице запрашивает БД для моих разрешений. Если я изменю код на что-то произвольное

my_permissions = Rails.cache.fetch("#{self.id}.permissions") do      
  "I have no permissions"
end

Это будет правильно жить в кеше. Я могу доказать это, потому что, если я изменю произвольную строку обратно на мой вызов ActiveRecord, он будет продолжать выдавать ошибку из-за неправильного объекта кеша. Я также проверил созданный файл кэша, и он правильно сохраняется как оба значения, я могу видеть, как выглядит мой объект разрешения, но он продолжает попадать в базу данных, а не в кэш. Чего мне не хватает?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...