2011-02-04 53 views
1

我在清單和緩存中存在一些Rails問題。當清掃器被調用時,Rails沒有刪除緩存/ .html頁面

/cache中的.html文件正在第一個視圖上生成。

清掃器操作在需要時被調用。

然而,清掃動作不是從/緩存

下面的代碼刪除的.html頁面是從我/控制器和/清掃目錄剝離下來。 puts行都記錄,所以我知道我們正在執行罰款 - expire命令似乎並沒有刪除該文件。

任何人有一個想法,我可以lool?

class WidgetsController < ApplicationController 
    cache_sweeper :widget_sweeper 
    caches_page :help 
    def help 
     render :template => '/widgets/help.html' 
    end 
end 

class WidgetSweeper < ActionController::Caching::Sweeper 
    observe HelpPage 
    def after_save(record) 
     puts "record " 
     puts record.inspect 
     expire_page(:controller => 'widgets', :action => 'help') 
     puts "ok!" 
    end 
end 
+0

我認爲這有點奇怪:你應該觀察一個模型,你的模型被命名爲HelpPage? – apneadiving

+0

我將模型和一些元素重新命名爲更清晰。我只是想說明我到after_save後,但expire_page不起作用。我也嘗試過expire_page('/ widgets/help') –

+0

是否有任何參數傳遞給HTML頁面?例如/ widgets/help?param = 234?另外,你是否證實緩存頁面存儲爲widgets/help.html而不是其他名稱? –

回答

0

你只是通過在控制檯中操作一些HelpPage記錄來測試它嗎?它看起來像你必須影響控制器的變化。

我用上面提供的代碼製作了一個測試應用程序,並在啓用緩存的情況下運行它。我在rails控制檯中創建了一些新的HelpPage記錄,並且我得到了兩條日誌消息,但沒有頁面過期。

但是,當我在控制器中創建一個新的HelpPage時,我確實按預期得到了頁面過期。

相關問題