2010-05-01 78 views
1

我想分段緩存頁面的一部分。
在視圖我有片段緩存

<% cache("saved_area") do %> 
. 
<% end -%> 

在控制器:

def index 

    read_fragment("saved_area") 

    end 

在配置/製作:

config.cache_store = :file_store, File.join(RAILS_ROOT, 'tmp', 'cache') 

該文件在TMP /緩存目錄中創建。但我不確定是否在請求中使用了緩存,因爲我認爲在日誌中應該有一行指出正在使用緩存(並且沒有)。

回答

2

Rails將生產模式下的日誌級別設置爲:info,因此它不會記錄緩存命中和未命中。如果您在config/enviroments/production.rb設置

config.log_level = :debug 

,那麼你看到這樣的消息:在您的記錄

Cached fragment hit: views/test (0.2ms) 
Cached fragment miss: views/test (1.8ms) 

。第二個解決方案是配置您的開發環境以執行緩存,因爲:debug是此環境中的默認日誌級別。這可以通過設置來完成:

config.action_controller.perform_caching = true 
config.cache_store = :file_store, File.join(RAILS_ROOT, 'tmp', 'cache') 

這是爲了做到這一點,因爲如果你的應用程序投入生產,你不會記錄那麼多的最佳途徑。

順便說一句:你不必在你的控制器中調用read_fragment。輔助方法cache將爲你做到這一點。