提交 349db176 编写于 作者: E Eileen Uchitelle

Fix query cache to load before first request

In a test app we observed that the query cache was not enabled on the
first request. This was because the query cache hooks are installed on
load and active record is loaded in the middle of the first request.

If we remove the `on_load` from the railtie the query cache hooks will
be installed before the first request, allowing the cache to be enabled
on that first request.

This is ok because query cache doesn't load anything else, only itself
so we're not eager loading all of active record before the first
request, just the query cache hooks.

[Eileen M. Uchitelle & Matthew Draper]
上级 3eb0406e
......@@ -180,9 +180,7 @@ class Railtie < Rails::Railtie # :nodoc:
end
initializer "active_record.set_executor_hooks" do
ActiveSupport.on_load(:active_record) do
ActiveRecord::QueryCache.install_executor_hooks
end
ActiveRecord::QueryCache.install_executor_hooks
end
initializer "active_record.add_watchable_files" do |app|
......
......@@ -371,6 +371,39 @@ def test_initialize_can_be_called_at_any_time
end
end
test "active record query cache hooks are installed before first request" do
app_file "app/controllers/omg_controller.rb", <<-RUBY
begin
class OmgController < ActionController::Metal
ActiveSupport.run_load_hooks(:action_controller, self)
def show
if ActiveRecord::Base.connection.query_cache_enabled
self.response_body = ["Query cache is enabled."]
else
self.response_body = ["Expected ActiveRecord::Base.connection.query_cache_enabled to be true"]
end
end
end
rescue => e
puts "Error loading metal: \#{e.class} \#{e.message}"
end
RUBY
app_file "config/routes.rb", <<-RUBY
Rails.application.routes.draw do
get "/:controller(/:action)"
end
RUBY
require "#{rails_root}/config/environment"
require "rack/test"
extend Rack::Test::Methods
get "/omg/show"
assert_equal "Query cache is enabled.", last_response.body
end
private
def setup_ar!
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册