Подходит ли кеширование фрагментов Rails для этой проблемы?

#ruby-on-rails #caching #fragment-caching

#ruby-on-rails #кэширование #кэширование фрагментов

Вопрос:

Я пока не понимаю систему кеширования Rails, но я прочитал в разделе руководства о функции, называемой кешированием фрагментов.

Моя проблема в том, что мое представление состоит в основном из статических элементов. Оно почти полностью статично, единственное изменение — это сообщение о состоянии и скрытое поле ввода в форме, оба генерируются при каждом запросе к действию, обслуживающему представление.

Подходит ли кеширование фрагментов для этой проблемы? Какую стратегию кэширования мне следует использовать?

Ответ №1:

Кэширование фрагментов соответствует вашей проблеме. Этого достаточно, потому что это позволяет вам кэшировать часть (фрагмент) вашего представления вместо всего представления. Из документов:

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

 <!-- this is the dynamic part-->
<b>Hello <%= @name %></b>

<% cache do %>
  <%= render :partial => "static_part" %>
<% end %>
  

Таким образом, вы можете поместить свою статическую часть между cache блоком и динамической частью за его пределами.
Вот ссылка на соответствующие документы: кеширование фрагментов rails.