diff options
Diffstat (limited to 'activerecord/lib')
-rw-r--r-- | activerecord/lib/active_record/identity_map.rb | 12 | ||||
-rw-r--r-- | activerecord/lib/active_record/railtie.rb | 3 |
2 files changed, 15 insertions, 0 deletions
diff --git a/activerecord/lib/active_record/identity_map.rb b/activerecord/lib/active_record/identity_map.rb index 9f95685816..0062682555 100644 --- a/activerecord/lib/active_record/identity_map.rb +++ b/activerecord/lib/active_record/identity_map.rb @@ -95,5 +95,17 @@ module ActiveRecord ActiveRecord::IdentityMap end end + + class Middleware + def initialize(app) + @app = app + end + + def call(env) + @app.call(env) + ensure + ActiveRecord::IdentityMap.clear + end + end end end diff --git a/activerecord/lib/active_record/railtie.rb b/activerecord/lib/active_record/railtie.rb index dfe255ad7c..5d0424a543 100644 --- a/activerecord/lib/active_record/railtie.rb +++ b/activerecord/lib/active_record/railtie.rb @@ -22,6 +22,9 @@ module ActiveRecord config.app_middleware.insert_after "::ActionDispatch::Callbacks", "ActiveRecord::ConnectionAdapters::ConnectionManagement" + config.app_middleware.insert_after "::ActionDispatch::Callbacks", + "ActiveRecord::IdentityMap::Middleware" + rake_tasks do load "active_record/railties/databases.rake" end |