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.
This commit is contained in:
evazion
2021-11-20 03:19:04 -06:00
parent c98af3c85a
commit 6b9e1181e5

View File

@@ -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?