安装
在gemfile增加一行
gem 'kaminari', '0.14.1'
常用方法
在Model对象上使用.page()和.per()两个方法,就像.where()一样。
例如每页10个,取第二页数据
User.page(2).per(10)
如果是传参数的话,可以写成
User.page(params[:page]).per(20)
在View中使用,直接调用它提供的helper方法即可
<%= paginate @users %>
参数配置
全局参数设置
执行以下命令,会在config/initializers下生成一个配置文件kaminari_config.rb
rails g kaminari:config
这个文件控制着kaminari的全局设置,有以下参数可以定义
default_per_page 默认值25
page_method_name 分页方法的名称
param_name 分页参数的参数名,默认为param
window / outer_window / left / right 这四个参数都与分页显示有关,设定了显示页码标签的方式和数量。
分页界面定制
执行一下命令可以获取默认模版文件。目录在app/views/kaminari/下
rails g kaminari:views default
各个文件描述如下
_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 空隙的显示,默认是中间的省略号(...)
注意,不要修改文件名。
theme功能
在app/views/kaminari目录下创建一个文件夹,例如test,把默认的模版文件拷贝进去,修改模版文件的内容,就形成了个性化的样式。
view页面按下方写法即可调用个性样式。
<%= paginate @blogs, :theme=>'test' %>
源资源文档
https://github.com/edokeh/klog/tree/master/app/views/kaminari