前言:rails项目常用的分页插件一般有两个will_paginate与kaminari,
大部分项目以及老项目使用的是will_paginate,网上也有比较多的资料,
但使用过kaminari后感觉后,性能和兼容性更好。
1.添加gem,然后bundle install
gem 'kaminari'
2.得到结果集后
@areas = Area.all.page(params[:page])
<p><%= paginate @areas %></p>
这是最基本的用法。如需阅读官方文档请访问:https://github.com/amatsuda/kaminari
------------------------------------------------------------分割线-----------------------------------------------------------------------
进阶使用:自定义主题,不同的列表使用不同的样式,或者采用ajax分页
执行以下指令,生成kaminari默认的配置文件
rails generate kaminari:views default
会在views下生成kaminari的文件夹,里面有7个页签对应的文件。
1.使用rails自带ajax的时候,注意分页文件中的remote属性,默认的是remote=>remote,将其改为remote=>true,
则所有的链接页签将会添加data-remote=true属性,这样点击分页的时候,会调用对应方法的js.erb模板,实现局部刷新。
(比will_paginate方便多了,wil_paginate需要在页面加载时,自行给页签添加data-remote属性,也可能我对will_paginate不精通)
2.使用不同的theme。在生成的views/kaminari文件夹下,
mkdir blue
cp *.html.* blue/
那么,blue就是一个主题,调用时
<p><%= paginate @areas, :theme => 'blue' %></p>
kaminari会自行调用blue下的文件进行分页。