Nil*_*ang 4 will-paginate ruby-on-rails-3
我正在使用将分页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)
Run Code Online (Sandbox Code Playgroud)
在从上面@users分配的部分地方users我做了:
= will_paginate users, previous_label: h("<"), next_label: h(">")
Run Code Online (Sandbox Code Playgroud)
如果有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)
Run Code Online (Sandbox Code Playgroud)
在我的范围内,我使用了disctinct,但调用count关系似乎覆盖了它.因此,必须手动计数并将计数传递给paginate方法.