今天尝试使用will_paginate插件实现分页。
1. 按照官方文档https://github.com/mislav/will_paginate/wiki/Installation安装will_paginate插件。
在Gemfile中添加:
gem 'will_paginate', '~> 3.0.5'
然后在Project的路径下运行:bundle install
出现错误:
查阅资料,原因是Rubygem官网被墙了。
解决办法:
把Gemfile的第一句:
source 'https://rubygems.org'
改为:
source 'http://ruby.taobao.org/'
再次运行
bundle install,成功,显示如下:
2.插件安装成功后,修改对应的controller.rb文件。
把index方法中,
语句改为@posts = Post.all
@posts = Post.paginate(:page => params[:page], :per_page => 10)
并在对应的indexj.html.erb中,加入:
<%= will_paginate @posts %>
随后,在environment.rb文件中,加入:
require 'will_paginate'
在浏览器中即可查看分页效果。
如果提示undefined method `paginate' ,试试重启rails服务器。
3.定义分页的样式。
去http://mislav.uniqpath.com/will_paginate/下载样式pagination.css,为了方便我直接把代码拷贝到application.css里面。
修改index.view:
<%= stylesheet_link_tag "application"%>
<div class="apple_pagination">
<%= will_paginate @posts, :container => false %>
</div>
显示效果: