From 6b9e1181e53c39eb3eb078fca5c77b682feb84aa Mon Sep 17 00:00:00 2001 From: evazion Date: Sat, 20 Nov 2021 03:19:04 -0600 Subject: [PATCH] search: optimize ?search[user_name]=... searches. Optimize searches using the `search[user_name]=...` URL parameter. If we're not doing a wildcard search, then do a regular user lookup, which generates better SQL. --- app/logical/concerns/searchable.rb | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/app/logical/concerns/searchable.rb b/app/logical/concerns/searchable.rb index b1b134ebd..a18fd41e9 100644 --- a/app/logical/concerns/searchable.rb +++ b/app/logical/concerns/searchable.rb @@ -397,7 +397,12 @@ module Searchable model = association.klass if model == User && params["#{attr}_name"].present? - relation = relation.where(attr => User.search(name_matches: params["#{attr}_name"]).reorder(nil)) + name = params["#{attr}_name"] + if name.include?("*") + relation = relation.where(attr => User.search(name_matches: name).reorder(nil)) + else + relation = relation.where(attr => User.find_by_name(name)) + end end if model == Post && params["#{attr}_tags_match"].present?