У меня есть кешированная часть в app/views/people:
<% cache key do %>
<tr>
<td>
<%= dynamic_value %>
Есть ли способ внутри самого представления сделать что-то вроде:
<% temp = cache key do %>
<tr>
<td>
<%= dynamic_value %>
...
<%= temp.gsub("Smith","Jones") %>
Идея состоит в том, чтобы закешировать немного дорогой динамический рендер с текстом-заполнителем, а затем добавить динамические значения внутри партиала.
Это возможно?
Спасибо, Кевин
capture
помощник используется для захвата частей шаблона
https://api.rubyonrails.org/v7.0.2.3/classes/ActionView/Helpers/CaptureHelper.html#method-i-capture
Если нет возможности кэшировать только дорогой бит, а затем добавить имя пользователя. Любая часть шаблона может быть отображена и записана в переменную, если вы позже измените ее, ее необходимо пометить как html-безопасную.
<% temp = capture do %>
<% cache key do %>
<%= dynamic_value %>
<% end %>
<% end %>
<%= temp.gsub("Smith","Jones").html_safe %>