2014-01-29 72 views
5

我有列出所有事件的頁面。但事件的列表取決於用戶是否是管理員。 如果我在瀏覽模型對象的頁面上使用片段緩存,它將緩存admin的所有事件。在每個用戶的Rails中使用片段緩存

它可以從緩存服務到另一個不是管理員的用戶嗎?如果是的話,我如何爲非管理員和管理員用戶使用片段緩存。

+0

使用expire_fragment(key,options = nil)根據條件過期緩存 – Bijendra

+0

常規用戶都有相同的事件嗎?或者是根據個人用戶創建的列表?因爲如果它們完全不同,那麼使用緩存並不是最好的辦法,因爲它只會產生大量的緩存。 – Cremz

回答

0

在你的控制器:

class ApplicationController < ActionController::Base 

    fragment_cache_key do 
     current_user.role 
    end 

#... 

這將導軌的使用片段緩存,並在構建緩存鍵時將其添加到fragment_cache_keys的列表中。因此,只要使用Rails的片段緩存,就可以爲每個用戶角色自動獲取唯一的緩存鍵(或者使用您喜歡的任何內容)。