rails gem系列之kaminari

##概要
kaminari是rails项目中常用的分页gem

github地址:https://github.com/amatsuda/kaminari

##安装

1
gem 'kaminari'

然后执行bundle就可以了。

##基本使用

分页的写法如下,默认为25行一页。改行数在后面加.per(行数)就可以了。

1
2
3
def index
@items = Item.page(params[:page])
end

view中加一行就会生成翻页部分了。so easy.

index.html.erb
1
<%= paginate @items %>

##更改翻页样式

1
rails g kaminari:views default

这样就会在app/views/kaminari下生成翻页部分的代码,可以按自己的喜好修改。

当然我们还可以选择bootstrap样式的翻页。直接clone下来就可以用了。当然前提是要先装好bootstrap。
https://github.com/gabetax/twitter-bootstrap-kaminari-views

##ajax翻页

posts_controller.rb
1
2
3
4
5
6
respond_to :html, :js

def index
@posts = Post.page(params[:page]).per(10)
respond_with(@posts)
end

列表部分放到partial中

_posts.html.erb
1
2
<% @posts.each do |post| %>
省略

index.js.erb
1
$("#posts").html("<%= j(render :partial => 'posts') %>");
index.html.erb
1
2
3
4
5
 <div id="posts">
<%= render :partial => "posts" %>
</div>

<%= paginate @posts %>