Merge remote-tracking branch 'parent/main' into upstream-20240227

This commit is contained in:
KMY 2024-02-27 08:53:15 +09:00
commit 78446fead4
120 changed files with 499 additions and 373 deletions

View file

@ -0,0 +1,29 @@
# frozen_string_literal: true
module RankedTrend
extend ActiveSupport::Concern
included do
scope :by_rank, -> { order(rank: :desc) }
scope :ranked_below, ->(value) { where(rank: ..value) }
end
class_methods do
def recalculate_ordered_rank
connection
.exec_update(<<~SQL.squish)
UPDATE #{table_name}
SET rank = inner_ordered.calculated_rank
FROM (
SELECT id, row_number() OVER w AS calculated_rank
FROM #{table_name}
WINDOW w AS (
PARTITION BY language
ORDER BY score DESC
)
) inner_ordered
WHERE #{table_name}.id = inner_ordered.id
SQL
end
end
end