我无法从控制台中查看开发或生产环境下缓存中的任何内容。
在开发环境中,我已经启用了缓存并将其设置为内存存储,在生产环境中,我使用dalli gem和Heroku上的Memcachier。
无论我尝试什么键值,都返回nil。
然而,在开发环境中,如果我在进行Rails.cache.fetch
之前放置一个binding.pry
,我可以在那里执行Rails.cache.read
并看到返回的内容。确实如此,如果是这样,执行不会进入fetch
的块中。
从控制台中,如果我尝试从pry
断点控制台中返回缓存结果的相同键读取Rails.cache.read
,我得不到任何东西。看起来控制台有一个单独的缓存,就好像如果我在控制台中执行Rails.cache.write("whatever", "blah")
和Rails.cache.read("whatever")
,我会得到预期的"blah"。
是否有一种方式可以从控制台中对正在运行的服务器进行缓存实验?
- cache("the_key") do
,我能否使用 Rails.cache.read 在控制台中访问它?即使切换到文件存储,似乎也不行,即使在开发环境中也是如此。我该如何获取这些缓存的内容? - Hsiu DaiActionController::Base.new.fragment_cache_key("the_key")
,我可以得到略微修改的缓存键(在这种情况下,它前面加上了view/
),并且可以使用Rails.cache.read
读取该修改后的键或者只需使用未修改的键ActionController::Base.new.read_fragment("the_key")
进行读取。感谢您的回答! - Hsiu Dai