diff options
author | Aaron Patterson <aaron.patterson@gmail.com> | 2013-10-13 16:51:10 -0700 |
---|---|---|
committer | Aaron Patterson <aaron.patterson@gmail.com> | 2013-10-13 16:51:10 -0700 |
commit | 7fe6d2450695fdd8c2597acca404b7724ec48507 (patch) | |
tree | 9df50c7f207578ed4e8597fd383308c0d77d9342 /activerecord | |
parent | 5e4031ef3d2c1b60bab1f8733ae995fa1305ec22 (diff) | |
download | rails-7fe6d2450695fdd8c2597acca404b7724ec48507.tar.gz rails-7fe6d2450695fdd8c2597acca404b7724ec48507.tar.bz2 rails-7fe6d2450695fdd8c2597acca404b7724ec48507.zip |
push up `select` exclusion
Diffstat (limited to 'activerecord')
-rw-r--r-- | activerecord/lib/active_record/relation.rb | 3 | ||||
-rw-r--r-- | activerecord/lib/active_record/relation/finder_methods.rb | 7 |
2 files changed, 6 insertions, 4 deletions
diff --git a/activerecord/lib/active_record/relation.rb b/activerecord/lib/active_record/relation.rb index cfaf566ec4..8d11fa4e57 100644 --- a/activerecord/lib/active_record/relation.rb +++ b/activerecord/lib/active_record/relation.rb @@ -508,7 +508,8 @@ module ActiveRecord if eager_loading? join_dependency = construct_join_dependency - relation = construct_relation_for_association_find(join_dependency) + relation = except :select + relation = construct_relation_for_association_find(join_dependency, relation) end ast = relation.arel.ast diff --git a/activerecord/lib/active_record/relation/finder_methods.rb b/activerecord/lib/active_record/relation/finder_methods.rb index 6ac803afc2..b575d9ad61 100644 --- a/activerecord/lib/active_record/relation/finder_methods.rb +++ b/activerecord/lib/active_record/relation/finder_methods.rb @@ -242,7 +242,8 @@ module ActiveRecord def find_with_associations join_dependency = construct_join_dependency - relation = construct_relation_for_association_find(join_dependency) + relation = except :select + relation = construct_relation_for_association_find(join_dependency, relation) if ActiveRecord::NullRelation === relation [] else @@ -260,8 +261,8 @@ module ActiveRecord apply_join_dependency(self, construct_join_dependency(arel.froms.first)) end - def construct_relation_for_association_find(join_dependency) - relation = except(:select).select(join_dependency.columns) + def construct_relation_for_association_find(join_dependency, relation = self) + relation = relation.select(join_dependency.columns) apply_join_dependency(relation, join_dependency) end |