2016-01-14 67 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...")/

相关问题