我正在尝试在Heroku上运行的Rails(5.0.0.beta2)中调试缓存视图中的陈旧条目。我想查看缓存中的条目,以确认它们的命名方式与我预期的方式相同,并且应该在到期时过期。
有没有办法做到这一点?我发现了这个问题,HOW do i see content of rails cache,建议Rails.cache.read("your_key")
。所以,使用bin/rails c
(在Heroku上)我尝试了:
Rails.cache.read(User.find(19).cache_key) => nil
其中19是我看到陈旧数据的用户之一的:id
。这让我有点难过......
如果我尝试:
User.find(19).cache_key => "users/19-20160316151228266421"
但是当一个缓存条目被认为过期时,日志行看起来像:
Expire fragment views/users/19-20160316151228266421 (0.2ms)
所以我尝试在该路径上执行Rails.cache.read
,这也返回nil
- 我也尝试对未过期的用户执行相同操作,并再次获得nil
。
我想知道路径中的差异是否表示存在问题,或者是否有办法查看创建的密钥的路径(我一直假设它至少匹配斜杠之后的部分)。
答案 0 :(得分:1)
Cache具有以下实例变量:
[:@options, :@data, :@key_access, :@max_size, :@max_prune_time, :@cache_size, :@monitor, :@pruning]
您可以使用以下方式检查数据:
Rails.cache.instance_variable_get(:@data)