我正在尝试对一个打乱的 ActiveRecord 查询进行分页。使用 Kaminari gem 执行此操作的语法是:
@users = Kaminari.paginate_array(User.all.shuffle).page(params[:page]).per(20)
问题在于 User.all
在每次分页请求时都会重新排列,导致调用重复的记录。有什么办法可以防止这种重复?
最佳答案
您需要在查询之间为 rand 传递种子
params[:seed] ||= Random.new_seed
srand params[:seed].to_i
@users = Kaminari.paginate_array(User.all.shuffle).page(params[:page]).per(20)
并在 View 中将 params[:seed] 添加到页面的所有 kaminari 链接
关于mysql - 对打乱的 ActiveRecord 查询进行分页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9967100/