缓存部分中的 gsub

gsub in cached partial

我在 app/views/people 中有一个缓存部分:

<% cache key do %>
    <tr>
      <td>
        <%= dynamic_value %>

有没有办法在视图本身内部做类似的事情:

<% temp = cache key do %>
    <tr>
      <td>
        <%= dynamic_value %>

...

<%= temp.gsub("Smith","Jones") %>

这个想法是用占位符文本缓存一个稍微昂贵的动态渲染,然后在局部中用动态值对其进行 gsub。

这可能吗?

谢谢, 凯文

capture helper 用于抓取部分模板 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 %>