微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

我正在使用将分页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方法.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐