aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/connection_adapters/connection_specification.rb
diff options
context:
space:
mode:
authorMatthew Draper <matthew@trebex.net>2014-04-08 15:00:38 +0930
committerMatthew Draper <matthew@trebex.net>2014-04-08 15:15:07 +0930
commit23692184bbcc2e411ed6bc6d1eaea09aa0f0474f (patch)
tree97399058a87978e8c87871abbff5763f7885c890 /activerecord/lib/active_record/connection_adapters/connection_specification.rb
parentde9f2f63b8548e2a8950c1727f0a1a6893713505 (diff)
downloadrails-23692184bbcc2e411ed6bc6d1eaea09aa0f0474f.tar.gz
rails-23692184bbcc2e411ed6bc6d1eaea09aa0f0474f.tar.bz2
rails-23692184bbcc2e411ed6bc6d1eaea09aa0f0474f.zip
Give a deprecation message even when the lookup fails
If the supplied string doesn't contain a colon, it clearly cannot be a database URL. They must have intended to do a key lookup, so even though it failed, give the explanatory deprecation warning, and raise the exception that lists the known configs. Conveniently, this also simplifies our logical behaviour: if the string matches a known configuration, or doesn't contain a colon (and is therefore clearly not a URL), then we output a deprecation warning, and behave exactly as we would if it were a symbol.
Diffstat (limited to 'activerecord/lib/active_record/connection_adapters/connection_specification.rb')
-rw-r--r--activerecord/lib/active_record/connection_adapters/connection_specification.rb4
1 files changed, 2 insertions, 2 deletions
diff --git a/activerecord/lib/active_record/connection_adapters/connection_specification.rb b/activerecord/lib/active_record/connection_adapters/connection_specification.rb
index e0715f7ce9..0cc92fa397 100644
--- a/activerecord/lib/active_record/connection_adapters/connection_specification.rb
+++ b/activerecord/lib/active_record/connection_adapters/connection_specification.rb
@@ -220,10 +220,10 @@ module ActiveRecord
# an environment key or a URL spec, so we have deprecated
# this ambiguous behaviour and in the future this function
# can be removed in favor of resolve_url_connection.
- if configurations.key?(spec)
+ if configurations.key?(spec) || spec !~ /:/
ActiveSupport::Deprecation.warn "Passing a string to ActiveRecord::Base.establish_connection " \
"for a configuration lookup is deprecated, please pass a symbol (#{spec.to_sym.inspect}) instead"
- resolve_connection(configurations[spec])
+ resolve_symbol_connection(spec)
else
resolve_url_connection(spec)
end