diff options
author | David Heinemeier Hansson <david@loudthinking.com> | 2005-04-13 18:12:59 +0000 |
---|---|---|
committer | David Heinemeier Hansson <david@loudthinking.com> | 2005-04-13 18:12:59 +0000 |
commit | ff1db4de5f291baef70ba637101bed35d79c4b86 (patch) | |
tree | 91b7c25b59c6f067273031c8bd5705c30dc86bd8 /activerecord/lib/active_record/associations/has_many_association.rb | |
parent | 71bdf13b60bb8ac6a06f05eea94399bf9de27a92 (diff) | |
download | rails-ff1db4de5f291baef70ba637101bed35d79c4b86.tar.gz rails-ff1db4de5f291baef70ba637101bed35d79c4b86.tar.bz2 rails-ff1db4de5f291baef70ba637101bed35d79c4b86.zip |
Qualify the ids used such that eager loading can avoid ambigious keys
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@1163 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'activerecord/lib/active_record/associations/has_many_association.rb')
-rw-r--r-- | activerecord/lib/active_record/associations/has_many_association.rb | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/activerecord/lib/active_record/associations/has_many_association.rb b/activerecord/lib/active_record/associations/has_many_association.rb index 272a1fe567..4a9d773ac7 100644 --- a/activerecord/lib/active_record/associations/has_many_association.rb +++ b/activerecord/lib/active_record/associations/has_many_association.rb @@ -112,7 +112,7 @@ module ActiveRecord else ids = quoted_record_ids(records) @association_class.update_all( - "#{@association_class_primary_key_name} = NULL", + "#{@association_class.table_name}.#{@association_class_primary_key_name} = NULL", "#{@association_class_primary_key_name} = #{@owner.quoted_id} AND #{@association_class.primary_key} IN (#{ids})" ) end @@ -126,7 +126,7 @@ module ActiveRecord if @options[:finder_sql] @finder_sql = interpolate_sql(@options[:finder_sql]) else - @finder_sql = "#{@association_class_primary_key_name} = #{@owner.quoted_id}" + @finder_sql = "#{@association_class.table_name}.#{@association_class_primary_key_name} = #{@owner.quoted_id}" @finder_sql << " AND #{interpolate_sql(@conditions)}" if @conditions end @@ -136,7 +136,7 @@ module ActiveRecord @options[:counter_sql] = @options[:finder_sql].gsub(/SELECT (.*) FROM/i, "SELECT COUNT(*) FROM") @counter_sql = interpolate_sql(@options[:counter_sql]) else - @counter_sql = "#{@association_class_primary_key_name} = #{@owner.quoted_id}" + @counter_sql = "#{@association_class.table_name}.#{@association_class_primary_key_name} = #{@owner.quoted_id}" @counter_sql << " AND #{interpolate_sql(@conditions)}" if @conditions end end |