ruby-on-rails – 与kaminari反向分页?
我使用
Kaminari 0.13.0和
RubyOnRails 3.2.8.
让我们假设我的元素有一个默认的crated_at排序,我的列表中有8个元素{a,b,c,d,e,f,g,h},我每页分页3个. 默认情况下,kaminari将创建以下页面链接1,2,3链接到{h,g},{f,d},{c,a}. 如何让kaminari以相反的顺序创建页面链接?我希望它以相反的顺序产生链接3,1仍然链接到反向有序元素{h,a}. 关于我试图解决的问题的一点背景: 我通过created_at命令页面上的元素.我希望元素永远保持在同一页面上.如果我不使用反向分页,每次添加新元素时,页面内容都会发生变化.因此,在上面的示例中,如果我向列表{i,j}添加了更多元素,则默认kaminari行为,那么第一页将包含{j,i,而不是{h,g}.第二页将包含{g,e},而不是{f,等等… 如果我有上面描述的反向页面编号,那么第一页仍然会有{c,a},第3页将使用新元素更新为{i,h,g}并且会有一个新的页面4一个元素{j}. 解决方法
我找到了解决方案:
def index users_scope = Users.order(:whateva) @users = reverse_paginate(users_scope,params[:page]) end def reverse_paginate(scope,page) if page page_number = page else page_number = Kaminari.paginate_array(scope.reverse).page(1).per(10).num_pages end Kaminari.paginate_array(scope.reverse).page(page_number).per(10).reverse! end 您需要更新kaminari页面视图_page.html.erb并将?page = 1添加到网址: url = "#{url}?page=1" if page.number == 1 link_to_unless page.current?,page.number,url,opts = {:remote => remote,:rel => page.next? ? 'next' : page.prev? ? 'prev' : nil} (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |