ruby-on-rails – 为什么我在开发Rails缓存中看到测试环境数据?
发布时间:2020-12-17 02:41:49 所属栏目:百科 来源:网络整理
导读:我试图像这样缓存一个类变量: Rails.cache.write("@@page_types",@@page_types) 在我调用PageTypes的类中调用此方法. 如果我启动rails控制台并执行: Rails.cache.write("@@page_types",nil)Rails.cache.read("@@page_types") 我没事.我打开控制台,在另一个
我试图像这样缓存一个类变量:
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,而我的开发数据都非常低. 我想我可以将Rails.env附加到缓存键,但似乎两个缓存不应该混合…. 解决方法
为您的测试环境定义不同的缓存后端. memory_store应该是单元测试的完美选择.
ActionController::Base.cache_store = :memory_store 在config / environments / test.rb中: config.cache_store = :memory_store (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |