aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/sanitization.rb
diff options
context:
space:
mode:
authorRyuta Kamizono <kamipo@gmail.com>2019-06-09 14:03:31 +0900
committerRyuta Kamizono <kamipo@gmail.com>2019-06-09 14:14:10 +0900
commit1340498d2102423665cc5cfe7be7cdba32c72928 (patch)
tree9067d11ca44f28919e55918e1fb5ef48f13eca0f /activerecord/lib/active_record/sanitization.rb
parent3567fa53f7dada3f5c66f4e72775f8bfa9f38f80 (diff)
downloadrails-1340498d2102423665cc5cfe7be7cdba32c72928.tar.gz
rails-1340498d2102423665cc5cfe7be7cdba32c72928.tar.bz2
rails-1340498d2102423665cc5cfe7be7cdba32c72928.zip
Refactor `disallow_raw_sql!` to avoid `split(/\s*,\s*/)` to order args
`split(/\s*,\s*/)` to order args and then `permit.match?` one by one is much slower than `permit.match?` once.
Diffstat (limited to 'activerecord/lib/active_record/sanitization.rb')
-rw-r--r--activerecord/lib/active_record/sanitization.rb3
1 files changed, 1 insertions, 2 deletions
diff --git a/activerecord/lib/active_record/sanitization.rb b/activerecord/lib/active_record/sanitization.rb
index 5296499bad..b16cbb0f84 100644
--- a/activerecord/lib/active_record/sanitization.rb
+++ b/activerecord/lib/active_record/sanitization.rb
@@ -137,8 +137,7 @@ module ActiveRecord
def disallow_raw_sql!(args, permit: connection.column_name_matcher) # :nodoc:
unexpected = nil
args.each do |arg|
- next if arg.is_a?(Symbol) || Arel.arel_node?(arg) ||
- arg.to_s.split(/\s*,\s*/).all? { |part| permit.match?(part) }
+ next if arg.is_a?(Symbol) || Arel.arel_node?(arg) || permit.match?(arg.to_s)
(unexpected ||= []) << arg
end