pagination: prefer extending over `extend.
The `extending` method is the preferred way to add methods to an ActiveRecord collection. * http://api.rubyonrails.org/classes/ActiveRecord/QueryMethods.html#method-i-extending * https://ruby-doc.org/core-2.5.0/Object.html#method-i-extend
This commit is contained in:
@@ -37,17 +37,17 @@ module Danbooru
|
|||||||
c = c.where("#{table_name}.id < ?", before_id.to_i)
|
c = c.where("#{table_name}.id < ?", before_id.to_i)
|
||||||
end
|
end
|
||||||
|
|
||||||
c.reorder("#{table_name}.id desc").tap do |obj|
|
c = c.reorder("#{table_name}.id desc")
|
||||||
obj.extend(SequentialCollectionExtension)
|
c = c.extending(SequentialCollectionExtension)
|
||||||
obj.sequential_paginator_mode = :before
|
c.sequential_paginator_mode = :before
|
||||||
end
|
c
|
||||||
end
|
end
|
||||||
|
|
||||||
def paginate_sequential_after(after_id)
|
def paginate_sequential_after(after_id)
|
||||||
limit(records_per_page + 1).where("#{table_name}.id > ?", after_id.to_i).reorder("#{table_name}.id asc").tap do |obj|
|
c = limit(records_per_page + 1).where("#{table_name}.id > ?", after_id.to_i).reorder("#{table_name}.id asc")
|
||||||
obj.extend(SequentialCollectionExtension)
|
c = c.extending(SequentialCollectionExtension)
|
||||||
obj.sequential_paginator_mode = :after
|
c.sequential_paginator_mode = :after
|
||||||
end
|
c
|
||||||
end
|
end
|
||||||
|
|
||||||
def paginate_numbered(page)
|
def paginate_numbered(page)
|
||||||
@@ -57,8 +57,7 @@ module Danbooru
|
|||||||
raise ::Danbooru::Paginator::PaginationError.new("You cannot go beyond page #{Danbooru.config.max_numbered_pages}. Please narrow your search terms.")
|
raise ::Danbooru::Paginator::PaginationError.new("You cannot go beyond page #{Danbooru.config.max_numbered_pages}. Please narrow your search terms.")
|
||||||
end
|
end
|
||||||
|
|
||||||
limit(records_per_page).offset((page - 1) * records_per_page).tap do |obj|
|
extending(NumberedCollectionExtension).limit(records_per_page).offset((page - 1) * records_per_page).tap do |obj|
|
||||||
obj.extend(NumberedCollectionExtension)
|
|
||||||
if records_per_page > 0
|
if records_per_page > 0
|
||||||
obj.total_pages = (obj.total_count.to_f / records_per_page).ceil
|
obj.total_pages = (obj.total_count.to_f / records_per_page).ceil
|
||||||
else
|
else
|
||||||
|
|||||||
Reference in New Issue
Block a user