有没有办法在“admin”用户登录时禁用动作/片段缓存(比如当current_user.role =“admin”)?
我在我的网站上使用缓存,但是当管理员用户登录时,我会为某些缓存的内容添加一些额外的链接。管理流量实际上是最小的,所以我只想缓存普通用户看到的内容。当管理员登录时,我基本上希望为他关闭缓存。
我不是在询问整页缓存,只是片段。
答案 0 :(得分:5)
从Rails 4开始,您可以使用CacheHelper:
<%= cache_unless admin?, project do %>
<b>All the topics on this project</b>
<%= render project.topics %>
<% end %>
答案 1 :(得分:4)
我现在正在使用这个助手,而不是“缓存”助手:
def cache_unless_admin *args
m = args.shift
if cannot? :manage, m
cache args do
yield
end
else
yield
end
end