加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails-3 – will_paginate生成错误数量的页面链接

发布时间:2020-12-17 03:53:17 所属栏目:百科 来源:网络整理
导读:我正在使用将分页3.0.2和Rails 3.1.0. 以下代码存在于我的控制器中. @users = User.visible_for(current_user). includes(:study_courses). ordered_by_last_name. page(params[:page]).per_page(20) 在@users从上面分配了用户的部分内容我做了: = will_pag
我正在使用将分页3.0.2和Rails 3.1.0.

以下代码存在于我的控制器中.

@users = User.visible_for(current_user).
           includes(:study_courses).
           ordered_by_last_name.
           page(params[:page]).per_page(20)

在@users从上面分配了用户的部分内容我做了:

= will_paginate users,previous_label: h("<"),next_label: h(">")

如果有20个用户,它给我6个页面链接,其中第一个页面包含20个用户,第二个页面包含10个用户,当然其余页面包含零个用户.

我无法弄清楚为什么有6个页面链接而不是3个.

更新:
想通了,will_paginate不使用distinct来计算记录.任何想法如何做到这一点?

解决方法

好的,我自己找到了一个解决方案:

user_count = User.visible_for(current_user).count(distinct: true)
  @users = User.visible_for(current_user).
                includes(:study_courses).
                ordered_by_last_name.
                paginate(page: params[:page],per_page: 20,total_entries: user_count)

在我的范围内,我使用了disctinct,但是对关系的调用计数似乎会覆盖它.因此,必须手动计数并将计数传递给paginate方法.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读