kaminari是一个基于范围和驱动的清洁的、强大的、可定制的并且复杂的现代Web应用程序框架和对象关系模型。它只请求当前页所需的数据,不会将表中所有数据加载完然后分页(很遗憾wice_grid就是这样的,据我所知),极大地提高了数据量大的应用的性能。

易用:

只需安装gem文件,然后你的model就可以分页了,不需要任何配置,也不必在你的models或helpers中定义任务东西。
基于I18N的可定制引擎:
        由于所有的分页帮助都是基于链接和非链接的容器,Kaminari在自己的引擎内部模板参考了他们,因此,你能很容易的修改
他们的行为、风格、或者重载模板的任何事情。

1.在gemfile文件中引入

#分页插件
gem 'kaminari'
gem 'bootstrap-kaminari-views'

2.执行bundle install

3.生成配置文件(这不是必须的,完全可以使用默认的,也可自己在程序中通过参数进行控制)

rails g kaminari:config
Kaminari.configure do |config|# config.default_per_page = 25# config.max_per_page = nil# config.window = 4# config.outer_window = 0# config.left = 0# config.right = 0# config.page_method_name = :page# config.param_name = :page
end

4.修改models/book.rb文件

class Book < ActiveRecord::Base#附件has_many :attachments, as: :owner, dependent: :delete_all, autosave: truehas_many :assets, through: :attachmentsaccepts_nested_attributes_for :assets, allow_destroy: trueaccepts_nested_attributes_for :attachments, allow_destroy: truepaginates_per 2             #每页显示两条数据end

5.修改books_controller.rb文件

# GET /books# GET /books.jsondef index@books = Book.order(:id).page params[:page]end

6.修改views/books/index.html.erb文件

<h1>Listing books</h1><table><thead><tr><th>Name</th><th>Author</th><th>Content</th><th></th><th></th><th></th></tr></thead><tbody><% @books.each do |book| %><tr><td><%= book.name %></td><td><%= book.author %></td><td><%= book.content %></td><td><%= link_to 'Show', book %></td><td><%= link_to 'Edit', edit_book_path(book) %></td><td><%= link_to 'Destroy', book, method: :delete, data: { confirm: 'Are you sure?' } %></td></tr><% end %></tbody></table>
<%= paginate @books %>
<br><%= link_to 'New Book', new_book_path %>

7.使用bootstrap的theme渲染kaminari分页插件

8.执行命令

rails g kaminari:views bootstrap

9.出现错误

 SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: 
 certificate verify failed (OpenSSL::SSL::SSLError)

10.解决办法,在gemfile文件中添加

#自定义分页插件主题
#执行rails g kaminari:views bootstrap 时报错 作用:Ensure net/https uses OpenSSL::SSL::VERIFY_PEER to
#verify SSL certificatesand provides certificate bundle in case OpenSSL cannot find one
gem 'certified'

11.执行bundle install

12.执行命令,生成kaminari 的view模板

rails g kaminari:views bootstrap

13.启动程序,查看效果

14.更多信息请参考

kaminari      bootstrap-kaminari-views          certified

15.项目源码

liwenjuan

rails kaminari bootstrap-kaminari-views certified相关推荐

  1. Rails + Bootstrap个人博客搭建的完整过程(4)

    2019独角兽企业重金招聘Python工程师标准>>> Part 10 接上文,接下来需要做的工作就是网站的安全性. -字段的有效性设置.这里主要是validates关键字的使用. ...

  2. rails使用devise验证

    使用ruby on rails的好处之一就是有很多功能可以不用自己来实现,有很多开源的组件可以直接拿来用,达到项目的目的. 比如登陆安全验证,要让自己来写需要考虑很多: 1. session生命周期 ...

  3. Spring4 MVC + REST + List + Bootstrap 简单示例

    本篇文章,我们将教会你通过eclipse创建并转换为maven的web项目.通过spring4 mvc提供的REST方式将List对象中的值通JSTL 的c:forEach 标签输出到页面中(本篇文章 ...

  4. 如何使用React和Redux前端创建Rails项目

    by Mark Hopson 马克·霍普森(Mark Hopson) 如何使用React和Redux前端(加上Typescript!)创建Rails项目 (How to create a Rails ...

  5. 11月24日 layouts and rendering in rails(部分没有看)

    http://guides.rubyonrails.org/layouts_and_rendering.html  中文 This guide covers the basic layout feat ...

  6. ruby on rails 中使用boot strap(先存起来,还没试过)

    1.首先安装  gem 'twitter-bootstrap-rails' ,运行bundle install 2.初始化 rails generate bootstrap:install less  ...

  7. .NET Apache Spark做基于商品推荐系统如此简单

    一..NET Apache Spark大数据基础学习 分析数据基础 数据准备: 1,https://api.github.com/repos/tosch/ruote-kit,1,ruote-kit,R ...

  8. 开源许可证 如何工作_开源许可证的工作方式以及如何将其添加到您的项目中...

    开源许可证 如何工作 by Radu Raicea 由Radu Raicea 开源许可证的工作方式以及如何将其添加到您的项目中 (How open source licenses work and h ...

  9. 推荐一个有趣的Chrome扩展程序-查看任意网站的开发技术栈

    对于前端开发人员来说,目前的前端框架层出不穷,最受欢迎的莫过于所谓的前端框架三驾马车:Angular, React和Vue.在学习的过程中,肯定好奇现在的互联网公司的网站用的何种前端框架来开发的. C ...

  10. 全栈测试:平衡单元测试和端到端测试

    全栈开发人员的特点是能够从头到尾交付并发布一个特性.教程和书籍常常侧重于搭建全栈开发环境和让测试能够进行所需要的"管件(plumbing)"(我综合运用了Angular.Rails ...

最新文章

  1. Intel汇编语言程序设计学习-第六章 条件处理-上
  2. 什么时候用到全排列_请问在排列组合中,在什么情况下要乘以全排列
  3. django数据库迁移问题
  4. 七、Python第七课——有关列表的二三事(切片、切片的遍历和复制)
  5. dataframe数据标准化处理_数据处理中的标准化、归一化究竟是什么?
  6. 物联网学习之路——物联网通信技术:NBIoT
  7. 限流算法-令牌桶算法
  8. 凭什么说 5G 安全无害?
  9. 大二英语单词(粗略)
  10. 海康、大华摄像头chrome高版本实时播放(java集成)
  11. 读博不怎么花家里的钱,为什么还说穷人不要读博
  12. Java 创建并应用PPT幻灯片母版
  13. vue中views新建文件夹的代码规范
  14. python如何绘制曲线图_如何使用Python的Pandas库绘制折线图
  15. Python——pyqt5的计算器(源码+打包)
  16. 【解释比较形象好理解】你稀里糊涂学的算法复杂度,原来这么简单!
  17. python 找出两个dataframe中不同的元素
  18. kotlin与Java之间的骚操作:kotlin一键调用java
  19. 微信小程序的左右布局
  20. 2018 android最新版本,2008年至2018年,Android系统10年进化史

热门文章

  1. 最全的英语收藏夹(精品)
  2. 如何为你的文本标签添加圆点、三角等不规则图形-保姆级教程
  3. 特征选择与特征权重计算的区别
  4. FaWave恢复twitter的办法
  5. 栋的月结 | 第三回合(定期更新、动态、架构、云技术、算法、后端、前端、收听/收看、英文、书籍、影视、好歌、新奇)[含泪总结.. 憋泪分享!]
  6. C++ 设计模式 面向对象设计原则 相关概念介绍(结合UnrealEngine4)
  7. 字符串处理工具类,主要是针对内容txt对标点符号进行处理-java处理字符串符号工具类实现逻辑
  8. Web前端鼠标变小手CSS和JS(Vue)两种实现
  9. html5 自动设置全屏,HTML5 body如何设置自适应全屏 HTML5 body设置自适应全屏代码
  10. Android权限请求弹窗自定义,安卓权限申请处理框架Android-UsesPermission