`
喵喵
  • 浏览: 5820 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

分页插件之--kaminari

 
阅读更多

分页插件kaminari

  • 可以很方便支持I18N
  • 可以很方便完成各种分页样式的定制
  • 支持Rails 3.0.x,3.1, 3.2, 4.0, 4.1

安装

  1. 在Gemfile中增加一行gem 'kaminari'
  2. 运行bundle install 进行安装
  3. 执行rails g kaminari:config生成一个kaminari_config配置文件
  4. 执行rails g kaminari:views default  这样会创建**app/views/kaminari/ 文件夹,你可以对其进行自定义
default_per_page  # 25 by default 缺省情况下的每页个数,默认为25
max_per_page      # nil by default
window            # 4 by default window / outer_window / left / right这四个参数都与分页显示有关系,特别是在总页数比较多的时候,该如何显示
outer_window      # 0 by default
left              # 0 by default
right             # 0 by default
page_method_name  # :paginate by default 分页方法的名称,如果你怕冲突(比如想很蛋疼地同时使用 will_paginate),可以修改它
param_name        # :page by default 分页参数的参数名,默认为 param
 

 

使用方法

     安装之后在**ActiveRecord** 和 view等中使用

   1. 可以在controller上使用

@admin_customers = Kaminari.paginate_array(@users).page(params[:page]).per(@pagesize)(给数组分页)
 

   2. 可以在model对象中使用 **.page()** 和 .per()这2个方法

每页10个,取第一页数据
User.page(2).per(10)
如果传给**.page()**方法的参数是 nil,则默认为1
User.page(params[:page])
 

    3. 在 view 中使用,显示分页栏

 

 

<%= paginate @users %>
这时会生成这样会生成类似 « First ‹ Prev ... 2 3 4 5 6 7 8 9 10 ... Next › Last » 的样式
 

   4.  还可以利用Ajax分页

<%= paginate @users, :remote=>true%>
 

 

分页界面定制

     为了自定义分页的显示样式,首先要生成一些模板文件

rails g kaminari:views default
 

    这样会创建 app/views/kaminari/ 文件夹,可以对其进行自定义(文件名不可以修改)

_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 空隙的显示,默认是中间的省略号(...)
     

  I18n

en:
  views:
    pagination:
      first: "&laquo; First"
      last: "Last &raquo;"
      previous: "&lsaquo; Prev"next: "Next &rsaquo;"
      truncate: "..."
 

 

总页数方法:@users.num_pages

总件数方法:@users.total_count

分享到:
评论

相关推荐

    will_paginate分页插件

    5. **与 Kaminari 对比**:虽然 `kaminari` 也是另一个常见的分页插件,但 `will_paginate` 更为成熟,社区支持更广泛,对于大多数项目来说,`will_paginate` 是首选。 使用 `will_paginate` 的步骤大致如下: 1. ...

    Rails的自动完成分页插件

    分页插件通常通过简单的API集成到控制器和视图中,提供友好的URL结构和可定制的样式。 4. **上传文件进度**: 对于大文件上传,用户可能需要知道文件上传的进度。这可以通过JavaScript库如jQuery-File-Upload或...

    关于rails学习中分页的示例

    你可以通过自定义分页助手来改变样式,或者使用如`kaminari-bootstrap`或`kaminari-bootstrap4`这样的插件来匹配Bootstrap框架。 7. **分页与Ajax** 如果你想实现无刷新分页,可以结合Ajax来更新内容。在控制器中...

    resume 用Ruby技术实现的search 分页的例子

    Rails提供了`will_paginate`或`kaminari`这样的插件来简化分页实现。以`will_paginate`为例,首先添加到Gemfile并安装: ```ruby gem 'will_paginate' gem 'will_paginate-bootstrap' # 如果你想使用Bootstrap样式 ...

    will_paginate插件下载

    开发者可以根据项目需求和团队偏好选择合适的分页插件。 总结,will_paginate是Rails开发中不可或缺的工具之一,它简化了数据分页的实现,提升了代码的可读性和维护性。通过理解并熟练掌握will_paginate的使用,...

    rubygems

    5. **kaminari-0.16.1.gem**: Kaminari是一个轻量级的分页库,支持Rails和ActiveRecord,用于优雅地处理数据分页,使得前端展示更加友好,用户体验更佳。 6. **sexp_processor-4.4.3.gem**: SexpProcessor库通常...

    awesome-rails-gem-zh_CN, Rails 常用 Gem 列表 - Awesome Rails Gem 中文版.zip

    12. **Kaminari** 和 **WillPaginate**:分页插件,帮助处理大量数据的显示。 13. **Ransack**:提供强大的搜索和过滤功能,让用户可以根据需要自定义搜索条件。 14. **SimpleForm** 和 **Formtastic**:简化Rails...

    SchedulyBridge:个人用途的日程安排,注释和在线简历申请

    分页(Kaminari) 身份验证(Devise) 图表(GetOrgChart) Google Map API 稽核 编辑器 测试用例 特威里奥 延迟::工作 弹性搜寻 耙任务 CSV,XLS contextMenu(右键菜单) 客户端验证 Sidekiq ============...

    Rails实现的简历系统

    Rails提供了一些插件,如`will_paginate`或`kaminari`,它们提供了一种优雅的方式来分页查询结果,提高用户体验。 6. **日历**:为了展示时间相关的简历信息,如工作经验或项目日期,可以使用像`fullcalendar-rails...

    ruby on rails API

    Rails提供了`kaminari`或`will_paginate`等插件实现分页,而`ransack`可以让用户通过复杂的查询条件过滤数据。 9. 测试:测试是API开发不可或缺的部分。Rails提供TDD(Test-Driven Development)工具如RSpec和...

    WillPaginateExample:Ruby on Rails的Will_Paginate示例

    `Will_Paginate` 是一个非常流行的Ruby on Rails插件,用于处理大型数据集的分页。它提供了简洁、灵活的API,使得在Rails应用中实现数据库查询结果的分页变得简单易行。在本篇文章中,我们将深入探讨`Will_Paginate`...

Global site tag (gtag.js) - Google Analytics