From 72ea78e697e7e36dadccdc52f09ee2b38a017598 Mon Sep 17 00:00:00 2001 From: evazion Date: Fri, 7 Jan 2022 13:24:14 -0600 Subject: [PATCH] searchable: replace find_ordered with in_order_of. Rails 7 added an `in_order_of` method that does what our `find_ordered` method did before. --- app/logical/concerns/searchable.rb | 10 +--------- app/logical/post_query_builder.rb | 2 +- app/models/post.rb | 2 +- 3 files changed, 3 insertions(+), 11 deletions(-) diff --git a/app/logical/concerns/searchable.rb b/app/logical/concerns/searchable.rb index 8a48bcadc..139968424 100644 --- a/app/logical/concerns/searchable.rb +++ b/app/logical/concerns/searchable.rb @@ -592,7 +592,7 @@ module Searchable if params[:order] == "custom" parse_ids = PostQueryBuilder.new(nil).parse_range(params[:id], :integer) if parse_ids[0] == :in - return find_ordered(parse_ids[1]) + return in_order_of(:id, parse_ids[1]) end end @@ -603,14 +603,6 @@ module Searchable order(id: :desc) end - def find_ordered(ids) - order_clause = [] - ids.each do |id| - order_clause << sanitize_sql_array(["#{qualified_column_for(:id)} = ? DESC", id]) - end - where(id: ids).order(Arel.sql(order_clause.join(', '))) - end - private def qualified_column_for(attr) diff --git a/app/logical/post_query_builder.rb b/app/logical/post_query_builder.rb index ba498a985..00c8eb7c1 100644 --- a/app/logical/post_query_builder.rb +++ b/app/logical/post_query_builder.rb @@ -736,7 +736,7 @@ class PostQueryBuilder operator, ids = parse_range(id_metatags.first, :integer) return relation.none unless operator == :in - relation.find_ordered(ids) + relation.in_order_of(:id, ids) end # @raise [TagLimitError] if the number of tags exceeds the user's tag limit diff --git a/app/models/post.rb b/app/models/post.rb index 8ca11bf33..d9b647d58 100644 --- a/app/models/post.rb +++ b/app/models/post.rb @@ -962,7 +962,7 @@ class Post < ApplicationRecord random_up(key) || random_down(key) end.compact.uniq - reorder(nil).find_ordered(posts.map(&:id)) + reorder(nil).in_order_of(:id, posts.map(&:id)) end def random_up(key)