Ruby on rails 为什么我在开发Rails缓存中看到测试环境数据?

Ruby on rails 为什么我在开发Rails缓存中看到测试环境数据?,ruby-on-rails,caching,development-environment,Ruby On Rails,Caching,Development Environment,我正在尝试缓存一个类变量,如下所示: Rails.cache.write("@@page_types", @@page_types) 这个方法是在我称为PageTypes的类中调用的 如果启动rails控制台并执行以下操作: Rails.cache.write("@@page_types", nil) Rails.cache.read("@@page_types") 我得零分。我将控制台保持打开状态,并在另一个窗口中执行此操作: 耙试验:单位 测试结束后,我切换回rails控制台窗口并执行以

我正在尝试缓存一个类变量,如下所示:

Rails.cache.write("@@page_types", @@page_types)
这个方法是在我称为PageTypes的类中调用的

如果启动rails控制台并执行以下操作:

Rails.cache.write("@@page_types", nil)
Rails.cache.read("@@page_types")
我得零分。我将控制台保持打开状态,并在另一个窗口中执行此操作:

耙试验:单位

测试结束后,我切换回rails控制台窗口并执行以下操作

Rails.cache.read("@@page_types")
它返回我的测试页面类型数组!我肯定它们来自我的测试数据库,因为这些模型都有超高的ID,而我的开发数据都有非常低的ID


我想我可以将Rails.env附加到缓存键,但这两个缓存似乎不应该混合使用……

为测试环境定义不同的缓存后端。内存存储对于单元测试来说应该是完美的

ActionController::Base.cache_store = :memory_store
在config/environments/test.rb中:

config.cache_store = :memory_store

啊,好主意!工作很好:)