gpt4 book ai didi

ruby-on-rails - 有没有办法在辅助方法中缓存字符串片段?

转载 作者:行者123 更新时间:2023-12-04 05:38:17 27 4
gpt4 key购买 nike

我有一个帮助器,可以为引擎中的常见组件生成复杂的 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 的 cache helper 预计它将在 Erb 中包装一个 HTML block ,因此不会像我上面描述的那样工作。

有没有办法在辅助方法中对字符串片段使用#cache

最佳答案

我是 fetch block 的忠实粉丝,您可以在 Rails docs 中阅读更多内容:

def component(name)
# ...

cache.fetch('some_unique_fragment_name') do
html
end
end

它的作用是返回 some_unique_fragment_name 的值(如果它可用),否则它将在 block 内生成它。这是一种显示缓存正在发生的可读、简洁的方式。

关于ruby-on-rails - 有没有办法在辅助方法中缓存字符串片段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17537928/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com