В этом руководстве представлен большой обзор встроенных альтернатив Rails для кэширования.Но в итоге:
Кэширование страницы: при первом запросе действия контроллера копия всей сгенерированной страницы записывается в статический файл .html, чтобы в следующий раз кто-нибудьзапрашивает то же действие, которое может быть выполнено веб-сервером, не затрагивая ваше приложение Rails вообще.Это очень быстро, но имеет ограничения, например, запрос на кэшированную страницу не проходит через ваше приложение, поэтому вы не можете использовать фильтры для аутентификации и ограничения доступа к странице.
Кэширование действий: запрос всегда отправляется с веб-сервера в приложение Rails, так что ваши фильтры запускаются, но если запрос проходит фильтры и действие кэшируется, то кэшированная копия подается вместо фактического выполнения кода в действии вашего контроллера.Ограничение: один и тот же кэшированный контент предоставляется всем пользователям, поэтому на странице не должно быть никаких персонализированных данных (например, отображение имени пользователя, вошедшего в систему в заголовке)
Кэширование фрагмента: контроллеркод действия выполняется, но в представлении можно кэшировать отдельные блоки страницы.например, если у нас есть что-то в боковой панели, которое требует больших вычислительных ресурсов.
Плагин, с которым вы связались, добавляет дополнительный уровень гранулярности.Содержимое действия кэшируется, но не содержимое макета, поэтому, если макет содержит, например, <%= curent_user.full_name %>
, он будет персонализирован для каждого пользователя.
Если у вас много пользовательских данных, но они все еще остаются постоянными для каждого пользователя.пользователя в течение разумного периода времени, то вы можете посмотреть кэширование на уровне запроса ActiveRecord вместо на уровне представления.