diff options
author | Ryuta Kamizono <kamipo@gmail.com> | 2017-10-09 07:05:26 +0900 |
---|---|---|
committer | Ryuta Kamizono <kamipo@gmail.com> | 2017-10-09 08:09:31 +0900 |
commit | 00f2d39c2e3111bf695aed9335388f0e06904d6a (patch) | |
tree | c78a50f9653d510f56bc27794807df4b8c9dd1ab /activerecord | |
parent | 1f0e4ebad22e597459613a82858569b66f7f0cf8 (diff) | |
download | rails-00f2d39c2e3111bf695aed9335388f0e06904d6a.tar.gz rails-00f2d39c2e3111bf695aed9335388f0e06904d6a.tar.bz2 rails-00f2d39c2e3111bf695aed9335388f0e06904d6a.zip |
Remove passing redundant `self` to internal `apply_join_dependency` etc
Diffstat (limited to 'activerecord')
-rw-r--r-- | activerecord/lib/active_record/relation/finder_methods.rb | 25 |
1 files changed, 12 insertions, 13 deletions
diff --git a/activerecord/lib/active_record/relation/finder_methods.rb b/activerecord/lib/active_record/relation/finder_methods.rb index 5d4b549470..5ccfe3d1b7 100644 --- a/activerecord/lib/active_record/relation/finder_methods.rb +++ b/activerecord/lib/active_record/relation/finder_methods.rb @@ -310,12 +310,12 @@ module ActiveRecord return false if !conditions || limit_value == 0 - relation = self unless eager_loading? - relation ||= apply_join_dependency(self, construct_join_dependency(eager_loading: false)) - - return false if ActiveRecord::NullRelation === relation + if eager_loading? + relation = apply_join_dependency(construct_join_dependency(eager_loading: false)) + return relation.exists?(conditions) + end - relation = construct_relation_for_exists(relation, conditions) + relation = construct_relation_for_exists(conditions) skip_query_cache_if_necessary { connection.select_value(relation.arel, "#{name} Exists") } ? true : false rescue ::RangeError @@ -368,15 +368,14 @@ module ActiveRecord # join_dependency = construct_join_dependency(joins_values) - aliases = join_dependency.aliases - relation = select aliases.columns - relation = apply_join_dependency(relation, join_dependency) + relation = apply_join_dependency(join_dependency) + relation._select!(join_dependency.aliases.columns) yield relation, join_dependency end - def construct_relation_for_exists(relation, conditions) - relation = relation.except(:select, :distinct, :order)._select!(ONE_AS_ONE).limit!(1) + def construct_relation_for_exists(conditions) + relation = except(:select, :distinct, :order)._select!(ONE_AS_ONE).limit!(1) case conditions when Array, Hash @@ -396,11 +395,11 @@ module ActiveRecord end def construct_relation_for_association_calculations - apply_join_dependency(self, construct_join_dependency(joins_values)) + apply_join_dependency(construct_join_dependency(joins_values)) end - def apply_join_dependency(relation, join_dependency) - relation = relation.except(:includes, :eager_load, :preload).joins!(join_dependency) + def apply_join_dependency(join_dependency) + relation = except(:includes, :eager_load, :preload).joins!(join_dependency) if using_limitable_reflections?(join_dependency.reflections) relation |