diff --git a/app/models/application_record.rb b/app/models/application_record.rb index b2f627553..42dced560 100644 --- a/app/models/application_record.rb +++ b/app/models/application_record.rb @@ -128,7 +128,7 @@ class ApplicationRecord < ActiveRecord::Base ids.each do |id| order_clause << sanitize_sql_array(["ID=? DESC", id]) end - where(id: ids).order(order_clause.join(', ')) + where(id: ids).order(Arel.sql(order_clause.join(', '))) end def search(params = {}) diff --git a/app/models/tag.rb b/app/models/tag.rb index 50c275c0a..26519fff8 100644 --- a/app/models/tag.rb +++ b/app/models/tag.rb @@ -611,8 +611,8 @@ class Tag < ApplicationRecord elsif g2.downcase == "collection" q[:tags][:related] << "pool:collection" elsif g2.include?("*") - pools = Pool.name_matches(g2).select("id").limit(Danbooru.config.tag_query_limit).order("post_count DESC") - q[:tags][:include] += pools.map {|pool| "pool:#{pool.id}"} + pool_ids = Pool.search(name_matches: g2, order: "post_count").limit(Danbooru.config.tag_query_limit).pluck(:id) + q[:tags][:include] += pool_ids.map { |id| "pool:#{id}" } else q[:tags][:related] << "pool:#{Pool.name_to_id(g2)}" end