当前位置: 首页 > 工具软件 > kaminari > 使用案例 >

rails kaminari bootstrap-kaminari-views

傅增
2023-12-01

1、安装

        gem 'kaminari'

        gem 'bootstrap-kaminari-views'

2、初始化参数

rails g kaminari:config

create  config/initializers/kaminari_config.rb

3、使用

   默认每页25条记录

   获得第2页     User.page(7)

  获得第2页10条User.page(7).per(50)

设置每页显示的条数,在model中进行设置paginates_per 50 ,也可以在controller中通过per(n)进行设置

4、对数据设置分页

controller层

User.page(params[:page])
view层

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

想要让分页首页、尾页等信息为中文,可以通过修改相应的 locales 语言文件来实现

views:
    pagination:
      first: "&laquo; 首页"
      last: "末页 &raquo;"
      previous: "&laquo; 上一页"
      next: "下一页 &raquo;"
      truncate: "..."
bootstrap-kaminari-views插件渲染分页界面
<%= paginate @users :theme => 'twitter-bootstrap'%>
<%= paginate @users :theme => 'twitter-bootstrap-3'%>
<%= paginate @users :theme => 'twitter-bootstrap-3', 
                   :pagination_class => "pagination-sm"%>

<%= paginate @users :theme => 'twitter-bootstrap', 
                   :pagination_class => "pagination-small pagination-centered"%>


theme 功能

以上的方法可以用于修改默认的分页界面,不过如果系统比较复杂,在不同的地方需要显示不同的分页界面该怎么办?
强大的 kaminari 还提供了 theme 的功能,而且实现很简单,你只需要在 app/views/kaminari/ 下再新建子文件夹即可

例如我在 app/views/kaminari 下新建了一个叫做 tiny 的子文件夹,并将外面的文件都拷贝进去
然后在 view 中这样写即可

<%= paginate @blogs, :theme=>'tiny' %>

这时候 kaminari 就会根据 tiny 子文件夹下的 view 来渲染分页界面了


5、修改默认界面

rails g kaminari:views default

这样会创建 app/views/kaminari/ 文件夹,里面的文件就是分页显示所需的 view ,你可以修改它们

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

注意文件不要改名,否则入口文件会找不到对应的子文件,不过如果你入口文件中将某个部分的代码删除的话,那么相应的子文件也可以删掉




 类似资料: