对于缓存,我使用redis
gem 'redis'
gem 'redis-namespace'
gem 'redis-rails'
gem 'redis-rack-cache'
在视图中使用缓存来处理html代码
当我使用密钥设置缓存时,它可以工作。但当我得到它没有整合甚至价值存在
def cache(cache_name)
value = $redis.get(cache_name)
if value.nil?
$redis.set(cache_name,yield,ex:5.minutes)
else
value
end
end
在视图中
<% cache("key") do %>
<h1>Header</h1>
<%end%>
问题是第一次出现标题,但接下来它没有显示存在的值
答案 0 :(得分:1)
尝试以下
def cache(cache_name)
Rails.cache.fetch(cache_name, expires_in: 5.minutes){ yield }
end
<强>更新强>
Rails已经提供了一个缓存片段的帮助器,它与自定义助手的名称相同,所以只需更改方法的名称
def set_cache(cache_name)
Rails.cache.fetch(cache_name, expires_in: 5.minutes){ yield }
end
你看法保持不变..