當「admin」用戶登錄時(例如current_user.role =「admin」),有沒有辦法禁用動作/碎片緩存?僅當管理員用戶未登錄時Rails動作/分段緩存
我在我的網站上使用緩存,但是當一個管理員用戶登錄時,我添加了一些額外的鏈接到某些被緩存的東西。管理流量的數量非常少,所以我只想緩存普通用戶看到的內容。當一個管理員登錄時,我基本上想要爲他關閉緩存。
我不是問整頁緩存,只有片段。
當「admin」用戶登錄時(例如current_user.role =「admin」),有沒有辦法禁用動作/碎片緩存?僅當管理員用戶未登錄時Rails動作/分段緩存
我在我的網站上使用緩存,但是當一個管理員用戶登錄時,我添加了一些額外的鏈接到某些被緩存的東西。管理流量的數量非常少,所以我只想緩存普通用戶看到的內容。當一個管理員登錄時,我基本上想要爲他關閉緩存。
我不是問整頁緩存,只有片段。
我現在用的這個幫手,而不是 「緩存」 幫手:
def cache_unless_admin *args
m = args.shift
if cannot? :manage, m
cache args do
yield
end
else
yield
end
end
由於軌道4,你可以使用CacheHelper:
<%= cache_unless admin?, project do %>
<b>All the topics on this project</b>
<%= render project.topics %>
<% end %>
這應該被檢查爲正確的一個 – 2015-11-30 11:44:22