1、安装
gem 'kaminari'
gem 'bootstrap-kaminari-views'
2、初始化参数
rails g kaminari:config3、使用create config/initializers/kaminari_config.rb
默认每页25条记录
获得第2页 User.page(7)
获得第2页10条User.page(7).per(50)
设置每页显示的条数,在model中进行设置paginates_per 50 ,也可以在controller中通过per(n)进行设置
4、对数据设置分页
controller层
User.page(params[:page])view层
<%= paginate @users %>这样会生成类似
« First ‹ Prev ... 2 3 4 5 6 7 8 9 10 ... Next › Last »
的 html
想要让分页首页、尾页等信息为中文,可以通过修改相应的 locales 语言文件来实现
views: pagination: first: "« 首页" last: "末页 »" previous: "« 上一页" next: "下一页 »" truncate: "..." bootstrap-kaminari-views插件渲染分页界面<%= paginate @users :theme => 'twitter-bootstrap'%><%= paginate @users :theme => 'twitter-bootstrap-3'%><%= paginate @users :theme => 'twitter-bootstrap-3', :pagination_class => "pagination-sm"%><%= paginate @users :theme => 'twitter-bootstrap', :pagination_class => "pagination-small pagination-centered"%>
以上的方法可以用于修改默认的分页界面,不过如果系统比较复杂,在不同的地方需要显示不同的分页界面该怎么办?
强大的 kaminari 还提供了 theme 的功能,而且实现很简单,你只需要在 app/views/kaminari/ 下再新建子文件夹即可
例如我在 app/views/kaminari 下新建了一个叫做 tiny 的子文件夹,并将外面的文件都拷贝进去
然后在 view 中这样写即可
<%= paginate @blogs, :theme=>'tiny' %>
这时候 kaminari 就会根据 tiny 子文件夹下的 view 来渲染分页界面了
5、修改默认界面
rails g kaminari:views default
这样会创建 app/views/kaminari/ 文件夹,里面的文件就是分页显示所需的 view ,你可以修改它们
_paginator.html.erb 这是总的入口文件,可以通过修改它来调整显示的整体结构
比如我不需要“首页”,”末页“这两个链接,那么我就在这个文件里面将对应的代码删除
_page.html.erb 对应页码链接
_first_page.html.erb / _last_page.html.erb 对应“首页”和“末页”的链接
_prev_page.html.erb / _next_page.html.erb 对应“上一页”和“下一页”的链接
_gap.html.erb 空隙的显示,默认是中间的省略号(...)
注意文件不要改名,否则入口文件会找不到对应的子文件,不过如果你入口文件中将某个部分的代码删除的话,那么相应的子文件也可以删掉