From 956ce716e2c5a8e32123c0a5bed1fafd07c39987 Mon Sep 17 00:00:00 2001 From: Jippe Holwerda Date: Wed, 6 Apr 2016 15:28:44 +0200 Subject: [PATCH] Explicitly check if the connection of the table engine is the sql server adapter. Fixes #450. --- lib/arel/visitors/sqlserver.rb | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/arel/visitors/sqlserver.rb b/lib/arel/visitors/sqlserver.rb index 67ac50e21..ff590fc85 100644 --- a/lib/arel/visitors/sqlserver.rb +++ b/lib/arel/visitors/sqlserver.rb @@ -74,7 +74,10 @@ def visit_Arel_Nodes_SelectStatement o, collector end def visit_Arel_Table o, collector - table_name = if o.engine.connection.database_prefix_remote_server? + # Apparently, o.engine.connection can actually be a different adapter + # than sqlserver. Can be removed if fixed in ActiveRecord. See: + # github.com/rails-sqlserver/activerecord-sqlserver-adapter/issues/450 + table_name = if o.engine.connection.respond_to?(:sqlserver?) and o.engine.connection.database_prefix_remote_server? remote_server_table_name(o) else quote_table_name(o.name)