Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 控制台中的Rails缓存不返回任何内容nil_Ruby On Rails_Caching_Rails Console - Fatal编程技术网

Ruby on rails 控制台中的Rails缓存不返回任何内容nil

Ruby on rails 控制台中的Rails缓存不返回任何内容nil,ruby-on-rails,caching,rails-console,Ruby On Rails,Caching,Rails Console,无论是在开发还是生产中,我都无法从控制台看到缓存中的任何内容 对于开发,我打开了缓存并将其设置为内存存储,在生产中,我使用Heroku上的dalli gem和Memcachier 我试过的每把钥匙都是零 然而,在开发过程中,如果我在某个地方执行Rails.cache.fetch之前加入binding.pry,我可以在那里执行Rails.cache.read并看到返回的内容,如果是这样,执行不会进入fetch的块 在控制台中,如果我尝试Rails.cache.read调用刚刚在pry断点控制台中返

无论是在开发还是生产中,我都无法从控制台看到缓存中的任何内容

对于开发,我打开了缓存并将其设置为内存存储,在生产中,我使用Heroku上的dalli gem和Memcachier

我试过的每把钥匙都是零

然而,在开发过程中,如果我在某个地方执行
Rails.cache.fetch
之前加入
binding.pry
,我可以在那里执行
Rails.cache.read
并看到返回的内容,如果是这样,执行不会进入
fetch
的块

在控制台中,如果我尝试
Rails.cache.read
调用刚刚在
pry
断点控制台中返回缓存结果的同一个键,我将一无所获。控制台似乎有一个单独的缓存,好像从控制台我做了
Rails.cache.write(“whatever”,“blah”)
Rails.cache.read(“whatever”)
,我得到了预期的“blah”作为回报


有没有一种方法可以从控制台测试运行中的服务器的缓存?

更改缓存存储:内存存储只存储进程内存中的所有内容,因此应用程序的每个实例都将有一个单独的缓存。特别是,控制台不会看到从正在运行的web应用程序设置的任何内容


您可以使用文件存储(将数据存储在tmp中的临时文件中),也可以在本地使用dalli存储-memcached非常容易运行。

好的,这对开发很有效,但我在生产中仍然没有得到任何结果,但我会接受您的回答,因为它确实回答了我提出的问题。对于视图中的片段缓存,我在HAML中执行
-cache(“the_key”)do
,我可以使用Rails.cache.read从控制台访问它吗?即使在切换到文件存储之后,即使在开发中,情况似乎也并非如此。如何获取这些缓存的内容?NM,我找到了自己的答案,使用
ActionController::Base.new.fragment\u cache\u key(“the\u key”)
我得到了稍微修改过的缓存键(在本例中,它前面加了
view/
),并且可以使用
Rails.cache.read
和修改过的一个或只需执行
ActionController::Base.new.read\u片段(“密钥”)
和未修改的密钥进行读取。谢谢你的回答!