aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/core.rb
diff options
context:
space:
mode:
authorArthur Neves <arthurnn@gmail.com>2016-05-04 00:46:38 -0500
committerArthur Neves <arthurnn@gmail.com>2016-05-05 15:29:11 -0500
commitb83fb847337b690ebbc96c55414157f71bbf8aa2 (patch)
tree63dbbbcdcad26fc4b69925578bd8a7e2d3a1f687 /activerecord/lib/active_record/core.rb
parent3bed679670dd8348ffc348509a653677c6ecb7f3 (diff)
downloadrails-b83fb847337b690ebbc96c55414157f71bbf8aa2.tar.gz
rails-b83fb847337b690ebbc96c55414157f71bbf8aa2.tar.bz2
rails-b83fb847337b690ebbc96c55414157f71bbf8aa2.zip
Refactor connection handler
ConnectionHandler will not have any knowlodge of AR models now, it will only know about the specs. Like that we can decouple the two, and allow the same model to use more than one connection. Historically, folks used to create abstract AR classes on the fly in order to have multiple connections for the same model, and override the connection methods. With this, now we can override the `specificiation_id` method in the model, to return a key, that will be used to find the connection_pool from the handler.
Diffstat (limited to 'activerecord/lib/active_record/core.rb')
-rw-r--r--activerecord/lib/active_record/core.rb2
1 files changed, 1 insertions, 1 deletions
diff --git a/activerecord/lib/active_record/core.rb b/activerecord/lib/active_record/core.rb
index 5d74631e32..291cabb4bb 100644
--- a/activerecord/lib/active_record/core.rb
+++ b/activerecord/lib/active_record/core.rb
@@ -257,7 +257,7 @@ module ActiveRecord
# Returns the Arel engine.
def arel_engine # :nodoc:
@arel_engine ||=
- if Base == self || connection_handler.retrieve_connection_pool(self)
+ if Base == self || connection_handler.retrieve_connection_pool(specification_id)
self
else
superclass.arel_engine