我试图在每个元素的基础上将内容插入页面的头部,所以我希望能够在部分中指定这样的内容:
# _partial.html.erb
<%= content_for :style %>
.element {
background-color: red;
}
<% end %>
并将其放在我页面的顶部:
# application.html.erb
<head>
<style>
<%= content_for(:style) %>
</style>
</head>
但是元素部分被片段缓存,content_for
在缓存中被忽略。
它在 Rails 文档中声明,content_for
不适用于片段缓存的工作元素:
WARNING: content_for is ignored in caches. So you shouldn't use it for elements that will be fragment cached.
http://api.rubyonrails.org/classes/ActionView/Helpers/CaptureHelper.html#method-i-content_for
目前有没有办法content_for
在 Rails 5.1 上使用片段缓存?似乎有一段时间没有人真正触及过这个问题。有人知道是否有原因吗?
这里有一些较早的提及:
对于 caches_action 和 :layout => false 的忽略 content_for 块是否有解决方法?
https://gist.github.com/stackng/891895
https://rails.lighthouseapp.com/projects/8994/tickets/3409-content_for-and-fragment-caching