#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.