diff options
author | Ben Woosley <ben.woosley@gmail.com> | 2013-05-10 11:47:45 +0200 |
---|---|---|
committer | Ben Woosley <ben.woosley@gmail.com> | 2013-05-10 17:46:04 +0200 |
commit | 88219cc88aadf75fe57a1ecacbe92a7acef64145 (patch) | |
tree | 0be016572c340bf2b96634637472b5cd84f5295c /activerecord/lib/active_record/relation | |
parent | 1dcb1ccc9d3d4f41e8f1a76ff3465f708189dd2f (diff) | |
download | rails-88219cc88aadf75fe57a1ecacbe92a7acef64145.tar.gz rails-88219cc88aadf75fe57a1ecacbe92a7acef64145.tar.bz2 rails-88219cc88aadf75fe57a1ecacbe92a7acef64145.zip |
Pull the excepts into apply_join_dependency, for the sake of DRY.
Diffstat (limited to 'activerecord/lib/active_record/relation')
-rw-r--r-- | activerecord/lib/active_record/relation/finder_methods.rb | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/activerecord/lib/active_record/relation/finder_methods.rb b/activerecord/lib/active_record/relation/finder_methods.rb index 9a774b5abc..ed5fe2c683 100644 --- a/activerecord/lib/active_record/relation/finder_methods.rb +++ b/activerecord/lib/active_record/relation/finder_methods.rb @@ -217,16 +217,17 @@ module ActiveRecord def construct_relation_for_association_calculations including = (eager_load_values + includes_values).uniq join_dependency = ActiveRecord::Associations::JoinDependency.new(@klass, including, arel.froms.first) - relation = except(:includes, :eager_load, :preload) - apply_join_dependency(relation, join_dependency) + apply_join_dependency(self, join_dependency) end def construct_relation_for_association_find(join_dependency) - relation = except(:includes, :eager_load, :preload, :select).select(join_dependency.columns) + relation = except(:select).select(join_dependency.columns) apply_join_dependency(relation, join_dependency) end def apply_join_dependency(relation, join_dependency) + relation = relation.except(:includes, :eager_load, :preload) + join_dependency.join_associations.each do |association| relation = association.join_relation(relation) end |