gpt4 book ai didi

ruby-on-rails-3 - 用kaminari反向分页

转载 作者:行者123 更新时间:2023-12-03 20:56:54 25 4
gpt4 key购买 nike

我想为消息传递系统创建分页,其中显示的第一页包含最旧的消息,随后的页面显示较新的消息。

例如,如果{a,b,c,d,e,f,g,h,i}每页3个的正常分页为:

{a,b,c}, {d,e,f}, {g,h,i}


那么反向分页将是:

{g,h,i}, {d,e,f}, {a,b,c}


我计划将页面放在前面,因此结果与正常分页相同,只是从最后一页开始。

kaminari可以吗?

最佳答案

Github上有一个很好的示例存储库,在github上名为reverse_kaminari。它建议沿着(Source)的实现。

class CitiesController < ApplicationController

def index
@cities = prepare_cities City.order('created_at DESC')
end

private

def prepare_cities(scope)
@per_page = City.default_per_page
total_count = scope.count
rest_count = total_count > @per_page ? (total_count % @per_page) : 0
@num_pages = total_count > @per_page ? (total_count / @per_page) : 1

if params[:page]
offset = params[:page].sub(/-.*/, '').to_i
current_page = @num_pages - (offset - 1) / @per_page
scope.page(current_page).per(@per_page).padding(rest_count)
else
scope.page(1).per(@per_page + rest_count)
end
end

end


所有学分均归 Andrew Djoga。他还将该应用程序托管为 a working demo

关于ruby-on-rails-3 - 用kaminari反向分页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13738045/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com