如何在Ruby中为JSON添加分页?

时间:2016-08-18 16:51:55

标签: ruby-on-rails json ruby pagination

我有一个GET请求,从CSV加载数千行。我从中获取所有行并将其转换为哈希。

我的GET请求方法看起来像这样

 do {
            try videoDevice!.lockForConfiguration()
            videoDevice!.activeVideoMinFrameDuration = CMTimeMake(1, 20)
            videoDevice!.activeVideoMaxFrameDuration = CMTimeMake(1, 20)
            videoDevice!.unlockForConfiguration()
        } catch let error as NSError {
                NSLog("Could not lock device for configuration: %@", error)
      }

我可以在DOM中显示这个json数据,但这需要很长时间才能加载。我已经尝试了will_paginate gem,默认为每页25个条目。这样可以正常工作,但它仍然使用分页标题一次性加载所有数据。

那么,我怎么能这样做,以便它只为第一页加载25行json,然后当我选择第2页时,它会加载下一个25,依此类推,直到我查看了所有数据?

感谢Ruby / JSON向导的任何帮助

1 个答案:

答案 0 :(得分:0)

Kaminari可以对任意数组进行分页:

@paginatable_array = Kaminari.paginate_array(rows).page(params[:page]).per(25)

在将它转换为json之前对你的rows数组执行此操作(因为它需要是一个数组)。

https://github.com/amatsuda/kaminari#paginating-a-generic-array-object