aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord
diff options
context:
space:
mode:
authorRyuta Kamizono <kamipo@gmail.com>2017-04-15 18:33:47 +0900
committerRyuta Kamizono <kamipo@gmail.com>2017-04-15 18:39:13 +0900
commitc1a2cbf12821508b2db12d98fa327fd1ea7561bc (patch)
tree36519b23408099de052c01af81d535fb094cb4a5 /activerecord
parent2e07392c7c6421998ef2199fe8e6d83e4cbb09bb (diff)
downloadrails-c1a2cbf12821508b2db12d98fa327fd1ea7561bc.tar.gz
rails-c1a2cbf12821508b2db12d98fa327fd1ea7561bc.tar.bz2
rails-c1a2cbf12821508b2db12d98fa327fd1ea7561bc.zip
Early return in `PredicateBuilder::ArrayHandler`
Partitioning to `values` and `nils` is unneeded before early return.
Diffstat (limited to 'activerecord')
-rw-r--r--activerecord/lib/active_record/relation/predicate_builder/array_handler.rb7
1 files changed, 3 insertions, 4 deletions
diff --git a/activerecord/lib/active_record/relation/predicate_builder/array_handler.rb b/activerecord/lib/active_record/relation/predicate_builder/array_handler.rb
index 54e9910598..1068e700e2 100644
--- a/activerecord/lib/active_record/relation/predicate_builder/array_handler.rb
+++ b/activerecord/lib/active_record/relation/predicate_builder/array_handler.rb
@@ -6,12 +6,11 @@ module ActiveRecord
end
def call(attribute, value)
+ return attribute.in([]) if value.empty?
+ return queries_predicates(value) if value.all? { |v| v.is_a?(Hash) }
+
values = value.map { |x| x.is_a?(Base) ? x.id : x }
nils, values = values.partition(&:nil?)
-
- return attribute.in([]) if values.empty? && nils.empty?
- return queries_predicates(values) if nils.empty? && values.all? { |v| v.is_a?(Hash) }
-
ranges, values = values.partition { |v| v.is_a?(Range) }
values_predicate =