Vya*_*nov 15 pagination mongoid
我试过了
@posts = Post.page(params[:page]).per_page(10)
Run Code Online (Sandbox Code Playgroud)
和
@posts = Post.paginate(:page => 1, :per_page => 10)
Run Code Online (Sandbox Code Playgroud)
但这两种方法都无效
undefined method `page' for Post:Class
undefined method `paginate' for Post:Class
Run Code Online (Sandbox Code Playgroud)
你怎么用mongoid做分页?
Vya*_*nov 12
您应该使用Kaminari https://github.com/amatsuda/kaminari
小智 5
这对我来说很好:
@posts = Post.paginate(:page => 1, :limit => 10).desc(:_id)
Run Code Online (Sandbox Code Playgroud)
desc(:_id) 已添加,以便可以首先列出最新帖子。
仍然使用 will_paginate 也可以。
这个线程有同样的问题:未定义的方法`paginate' for Array on Rails 3 with mongoid
修复错误的要点是在控制器调用分页库之前添加这一行:
require 'will_paginate/array'
Run Code Online (Sandbox Code Playgroud)
如果您在整个项目中使用 mongoid,则应将其添加到默认配置文件中。
希望解释有帮助。
来自原始 gem 源的参考:https : //github.com/mislav/will_paginate/wiki/Backwards-incompatibility在“WillPaginate::Collection”部分。
P/S:如果您的查询不是很大,这只是一种解决方法。如果你想要更好的性能,让我们尝试mongoid-pagination gem、自定义 will_pagination gem或其他支持 Mongoid 的分页 gem 像kaminari。
| 归档时间: |
|
| 查看次数: |
10350 次 |
| 最近记录: |