Я запускаю приложение Rails 3 для Rails 4. Миграция была в основном довольно гладкой, но одна большая проблема, с которой я сталкиваюсь, заключается в том, что мой старый код Rails 3 истекает кеши не работают. Я получаю журналы как:Отключить кэширование в Rails 4
Expire fragment views/localhost:3000/cardsets/36?action_suffix=edityes (0.0ms)
...
Read fragment views/localhost:3000/cardsets/36?action_suffix=edityes/d8034b6e68ba30b5916a2ebb73b68ffe (0.0ms)
Это оказывается, потому что Rails 4 приносит новый обалденный вид кэширования, кэш-дайджестов. Эта длинная строка hex на конце представляет собой md5-дайджест некоторого представления, которое Rails хочет связать с этим фрагментом кэша.
Я считаю, что мне не нужны дайджесты для кэша. Мое приложение обновляется довольно редко, и, как правило, я могу очистить кеш, когда он обновляется, поэтому концепция фрагмента кэша, относящаяся к версии предыдущего фрагмента кода моего представления, не имеет значения.
Я вижу, что я могу изменить любой данный звонок до cache
с флагом :skip_digest => true
. This blog post относится к изменению большого количества их cache
звонков, чтобы добавить :skip_digest
. Но я считаю, что хочу применить этот флаг к каждому звонку до cache
в своем приложении. Наверняка должен быть какой-то способ просто отключить дайджесты кэшей повсеместно?
Выглядит хорошо! Я попробую и посмотрю, работает ли это. Мне нужно было бы разместить это где-то, как каталог config/initializers, не так ли? – AlexC
это правильно :) – jvnill
Работал отлично! Большое спасибо :) – AlexC