全局禁用Rails SQL查询缓存

Moh*_*fez 15 activerecord ruby-on-rails ruby-on-rails-3

有没有办法在全局范围内关闭Rails的SQL查询缓存?或者,至少,当我进入交易区块时,不要使用它?

此外,sql查询缓存仅适用于控制器操作,还是适用于我编写的包含Rails和使用我的模型的任务或后台守护进程?

Moh*_*fez 17

得到它了!在application.rb中:

config.middleware.delete ActiveRecord::QueryCache
Run Code Online (Sandbox Code Playgroud)


Anu*_*ngh 7

在 Rails 5 中,我们可以使用给定函数作为中间件来禁用活动记录查询缓存。

在 application_controller.rb 中添加给定的代码。

around_action :disable_query_cache

def disable_query_cache
    ActiveRecord::Base.uncached do
       yield
    end
end
Run Code Online (Sandbox Code Playgroud)