Rails 3开发环境保持缓存,即使没有缓存?

时间:2011-04-13 08:12:09

标签: ruby-on-rails caching

我在开发模式下有一个rails 3应用程序,它不会加载我在运行webrick时所做的任何更改。我三重检查了development.rb的设置,并确保我在开发模式下运行。

config.cache_classes = false
config.action_controller.perform_caching = false

我还检查了我的tmp目录以确保缓存文件夹是空的 - 我还没有在网站上进行任何缓存并且从未打开过缓存。我猜测它的文件加载问题。

我也在webrick上运行,然后安装了mongrel,问题仍然存在。

我猜我遇到配置问题,但是我没有看到其他人发布这样的问题。我还缺少什么?

编辑:看起来我的视图帮助程序不能自动加载 - 默认情况下不是帮助程序应该可以在rails 3中重新加载吗?

5 个答案:

答案 0 :(得分:5)

我有类似的经历,但我不相信这是一个实际的帮助类,它是我在lib/目录下写的任何内容。如果您必须使用require 'some_class'语句,则应将其切换为:

require_dependency 'some_class'

对我来说就像一个魅力。

答案 1 :(得分:2)

我遇到了同样的问题,这是一个简单的解决方案 在config/environments/development.rb设置以下设置中:

config.action_controller.perform_caching = false
config.perform_caching = false
config.cache_store = :null_store

答案 2 :(得分:1)

我知道这是一个老问题,但对于来这里遇到类似问题的人来说,请确保您不会像我一样意外地将production.rbconfig/environments/移到config/initializers/。这将使Rails读入production.rb文件并覆盖您的开发设置。糟糕。

答案 3 :(得分:1)

有同样的问题,它是由rails-dev-tweaks gem引起的,如果你使用README的默认配置,则在AJAX请求时禁用堆栈重载。

答案 4 :(得分:0)

我使用的是Rails 4,我的缓存调用是使用Rails.cache.fetch的助手。

在谷歌搜索后,我发现了这个问题(https://github.com/rails/rails/issues/20733),其中PR被合并到rails 5文档中,以明确表示'

  

更改config.action_controller.perform_caching的值将会   只对Action Controller提供的缓存产生影响   零件。例如,它不会影响我们的低级缓存   地址如下。

'正在进行低级别缓存' Rails.cache.fetch。

现在就在文档上:http://guides.rubyonrails.org/caching_with_rails.html