2016-01-14 66 views
0

在我的意見之一,我有:爲什麼我的緩存片段沒有存儲?

- cache("crumb") do 
    %ul.breadcrumb 

在瀏覽器中,查看負載和你看到的麪包屑。

development.rb,我有:

config.consider_all_requests_local  = true 
config.action_controller.perform_caching = true 
config.cache_store      = :dalli_store 

加載視圖後,爲什麼我那麼有:

ActionController::Base.new.read_fragment("crumb") 
Cache read: views/crumb 
D, [2016-01-14T12:14:12.707228 #2465] DEBUG – : Cache read: views/crumb 
Read fragment views/crumb (0.5ms) 
I, [2016-01-14T12:14:12.707727 #2465] INFO – : Read fragment views/crumb (0.5ms) 
=> nil 

的緩存讀取和命令行寫:

ActionController::Base.new.write_fragment("crumb", "foo") 
Cache write: views/crumb 
D, [2016-01-14T12:14:29.401736 #2465] DEBUG – : Cache write: views/crumb 
Write fragment views/crumb (1.2ms) 
I, [2016-01-14T12:14:29.402987 #2465] INFO – : Write fragment views/crumb (1.2ms) 
=> "foo" 
[4] pry(main)> ActionController::Base.new.read_fragment("crumb") 
Cache read: views/crumb 
D, [2016-01-14T12:14:33.990289 #2465] DEBUG – : Cache read: views/crumb 
Read fragment views/crumb (0.6ms) 
I, [2016-01-14T12:14:33.990858 #2465] INFO – : Read fragment views/crumb (0.6ms) 
=> "foo" 

但即使我以這種方式在命令行寫入緩存後,我看到了我的視圖的HTML,而不是「f oo「,當我重新加載頁面時在瀏覽器中。

注意:一旦我得到這個工作,我會在模型中包含模型對象。但爲了本文的目的,我故意簡化了測試用例。

回答

0

答案是緩存實際上是工作的,但要在控制檯中測試它,您需要包含Rails自動附加的緩存摘要。您可以從日誌中複製粘貼此摘要。你最終會輸入類似Rails.cache.read("views/crumb/etcetc...")/

相關問題