From 06c787d2359660529ff5b927d3d34f22379eef00 Mon Sep 17 00:00:00 2001 From: Jon Leighton Date: Sat, 5 May 2012 21:36:24 +0100 Subject: Revert "Merge pull request #5494 from armstrjare/active_record_relation_keep_association_join_context_on_merge" This reverts commit dcd04e76179611a9db28c9e391aa7d6c2a5b046a, reversing changes made to 58a49875df63729f07a9a81d1ee349087d258df5. --- .../active_record/associations/join_dependency.rb | 2 +- .../join_dependency/join_association.rb | 7 +---- activerecord/lib/active_record/relation/merger.rb | 31 +++------------------- 3 files changed, 5 insertions(+), 35 deletions(-) (limited to 'activerecord/lib/active_record') diff --git a/activerecord/lib/active_record/associations/join_dependency.rb b/activerecord/lib/active_record/associations/join_dependency.rb index e3d8356f49..cd366ac8b7 100644 --- a/activerecord/lib/active_record/associations/join_dependency.rb +++ b/activerecord/lib/active_record/associations/join_dependency.rb @@ -109,7 +109,7 @@ module ActiveRecord case associations when Symbol, String reflection = parent.reflections[associations.to_s.intern] or - raise ConfigurationError, "Association named '#{ associations }' was not found on #{parent.active_record.name}; perhaps you misspelled it?" + raise ConfigurationError, "Association named '#{ associations }' was not found; perhaps you misspelled it?" unless join_association = find_join_association(reflection, parent) @reflections << reflection join_association = build_join_association(reflection, parent) diff --git a/activerecord/lib/active_record/associations/join_dependency/join_association.rb b/activerecord/lib/active_record/associations/join_dependency/join_association.rb index ea4856408d..0d7d28e458 100644 --- a/activerecord/lib/active_record/associations/join_dependency/join_association.rb +++ b/activerecord/lib/active_record/associations/join_dependency/join_association.rb @@ -55,12 +55,7 @@ module ActiveRecord def find_parent_in(other_join_dependency) other_join_dependency.join_parts.detect do |join_part| - case parent - when JoinBase - parent.active_record == join_part.active_record - else - parent == join_part - end + parent == join_part end end diff --git a/activerecord/lib/active_record/relation/merger.rb b/activerecord/lib/active_record/relation/merger.rb index c2f0a82fd3..3f880ce5e9 100644 --- a/activerecord/lib/active_record/relation/merger.rb +++ b/activerecord/lib/active_record/relation/merger.rb @@ -29,7 +29,7 @@ module ActiveRecord end class Merger - attr_reader :relation, :other + attr_reader :relation, :values def initialize(relation, other) if other.default_scoped? && other.klass != relation.klass @@ -37,17 +37,13 @@ module ActiveRecord end @relation = relation - @other = other - end - - def values - @other.values + @values = other.values end def normal_values Relation::SINGLE_VALUE_METHODS + Relation::MULTI_VALUE_METHODS - - [:where, :joins, :order, :bind, :reverse_order, :lock, :create_with, :reordering] + [:where, :order, :bind, :reverse_order, :lock, :create_with, :reordering] end def merge @@ -58,7 +54,6 @@ module ActiveRecord merge_multi_values merge_single_values - merge_joins relation end @@ -89,26 +84,6 @@ module ActiveRecord end end - def merge_joins - return if values[:joins].blank? - - if other.klass == relation.klass - relation.joins!(values[:joins]) - else - joins_to_stash, other_joins = values[:joins].partition { |join| - case join - when Hash, Symbol, Array - true - else - false - end - } - - join_dependency = ActiveRecord::Associations::JoinDependency.new(other.klass, joins_to_stash, []) - relation.joins!(join_dependency.join_associations + other_joins) - end - end - def merged_binds if values[:bind] (relation.bind_values + values[:bind]).uniq(&:first) -- cgit v1.2.3