我尝试缓存一个类变量,代码如下:
Rails.cache.write("@@page_types", @@page_types)
这个方法是在我创建的一个叫做PageTypes的类中调用的。
如果我启动Rails控制台并执行:
Rails.cache.write("@@page_types", nil)
Rails.cache.read("@@page_types")
我得到了空值。我保持控制台打开并在另一个窗口中执行以下操作:
rake test:units
当测试结束时,我切换回我的Rails控制台窗口并执行以下操作:
Rails.cache.read("@@page_types")
它返回我的测试页面类型的数组!我有把握它们来自我的测试数据库,因为这些模型都具有非常高的ID,而我的开发数据都有非常低的ID。
我想如果将Rails.env附加到缓存键上似乎可以解决问题,但是这两个缓存不应该混合在一起....