我有一个助手可以为引擎中的常见组件生成复杂的 HTML。
助手(非常简化):
def component(name)
component = Component.find_by_name!(name)
# a whole lot of complex stuff that uses component to build some HTML
end
看法:
<%= component(:my_component) %>
我想在这些组件上实现片段缓存,但我想在自己内部#component
进行以保持干燥,例如
def component(name)
...
cache some_unique_fragment_name do
html
end
# or, more succinctly:
cache(some_unique_fragment_name, html)
end
问题是 Rails 的缓存助手希望它会在 Erb 中包装一个 HTML 块,因此不会像我上面描述的那样工作。
有没有办法#cache
在辅助方法中使用字符串片段?