ruby on rails中的分页插件Kaminari
2015-05-13 11:35
323 查看
1.安装
在Gemfile中增加一行
然后启动bundler
2.查看kaminari的配置文件
执行以下命令,会在 config\initializers 下生成一个配置文件kaminari_config.rb
查看kaminari_config.rb内容如下
这个配置文件控制着 kaminari 的全局设置,有以下参数可以进行自定义
3.kaminari常用方法
装了插件以后,可以在 model 对象上使用 .page() 和 .per() 这两个方法,就像 .where() 一样,例如:
4.Model 配置
如果统一的 per_page 全局设置不能满足你的要求,你希望针对每一种 model 设置不同的 per_page ,那么可以这样
这样就省去你在每个 controller 中各自使用 .per() 方法了
5.View中的使用
在页面上,要显示分页的话,用它提供的 helper 方法即可
这样会生成类似
如果你想修改其中的文字的话,可以通过修改相应的config/ locales 下的语言文件en.yml来实现
例如:在默认语言en:之后添加
6.分页界面定制
修改默认界面
为了自定义分页的显示样式,首先要生成一些模板文件,执行以下命令
这样会创建 app/views/kaminari 文件夹,里面的文件就是分页显示所需的 view ,你可以修改它们
注意文件不要改名,否则入口文件会找不到对应的子文件,不过如果你入口文件中将某个部分的代码删除的话,那么相应的子文件也可以删掉
theme 功能
以上的方法可以用于修改默认的分页界面,不过如果系统比较复杂,在不同的地方需要显示不同的分页界面该怎么办?
强大的 kaminari 还提供了 theme 的功能,而且实现很简单,你只需要在 app/views/kaminari/ 下再新建子文件夹即可
例如我在 app/views/kaminari 下新建了一个叫做 minikm 的子文件夹,并将外面的文件都拷贝进去
然后在 view 中这样写即可
这时候 kaminari 就会根据 minikm 子文件夹下设置的view 来渲染分页界面了
在Gemfile中增加一行
gem 'kaminari'
然后启动bundler
$ bundle install
2.查看kaminari的配置文件
执行以下命令,会在 config\initializers 下生成一个配置文件kaminari_config.rb
$ rails g kaminari:config
查看kaminari_config.rb内容如下
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
这个配置文件控制着 kaminari 的全局设置,有以下参数可以进行自定义
default_per_page 缺省情况下的每页个数,默认为25 page_method_name 分页方法的名称 param_name 分页参数的参数名,默认为 page window / outer_window / left / right 这四个参数都与分页显示有关系
3.kaminari常用方法
装了插件以后,可以在 model 对象上使用 .page() 和 .per() 这两个方法,就像 .where() 一样,例如:
每页10个,取第2页数据
Event.page(2).per(10)
配合查询条件语句,取第三页数据,默认每页为25个
Event.where(:status=>1).includes(:topics).page(3)
如果传给 .page() 方法的参数是 nil,则默认为1
Event.page(params[:page])
4.Model 配置
如果统一的 per_page 全局设置不能满足你的要求,你希望针对每一种 model 设置不同的 per_page ,那么可以这样
class Event < ActiveRecord::Base paginates_per 5 end
这样就省去你在每个 controller 中各自使用 .per() 方法了
def index @events = Event.page(params[:page]).per(5) end
5.View中的使用
在页面上,要显示分页的话,用它提供的 helper 方法即可
<%= paginate @Event %>
这样会生成类似
« First ‹ Prev ... 2 3 4 5 6 7 8 9 10 ... Next › Last »的 html
如果你想修改其中的文字的话,可以通过修改相应的config/ locales 下的语言文件en.yml来实现
例如:在默认语言en:之后添加
views: pagination: first: "« 首页" last: "末页 »" previous: "« 上一页" next: "下一页 »" truncate: "..."
« 首页 ‹ 上一页 ... 2 3 4 5 6 7 8 9 10 ... 下一页 › 末页 »
6.分页界面定制
修改默认界面
为了自定义分页的显示样式,首先要生成一些模板文件,执行以下命令
$ 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 空隙的显示,默认是中间的省略号(...)
注意文件不要改名,否则入口文件会找不到对应的子文件,不过如果你入口文件中将某个部分的代码删除的话,那么相应的子文件也可以删掉
theme 功能
以上的方法可以用于修改默认的分页界面,不过如果系统比较复杂,在不同的地方需要显示不同的分页界面该怎么办?
强大的 kaminari 还提供了 theme 的功能,而且实现很简单,你只需要在 app/views/kaminari/ 下再新建子文件夹即可
例如我在 app/views/kaminari 下新建了一个叫做 minikm 的子文件夹,并将外面的文件都拷贝进去
然后在 view 中这样写即可
<%= paginate @events, :theme=>'tiny' %>
这时候 kaminari 就会根据 minikm 子文件夹下设置的view 来渲染分页界面了
相关文章推荐
- 如何向Ruby on Rails 分页插件 will_paginate 的链接插入其它参数
- rails 分页插件 Kaminari 的 数组分页
- ruby on rails 安装插件
- Ruby on Rails应用软件的相关Eclipse插件
- [Ruby on Rails]Rails分页plugin之will_paginate
- 使用TextMate进行Ruby On Rails开发推荐插件
- Ruby On Rails 学习:Rails3中实现数据分页和排序
- Ruby On Rails 框架下的常用插件介绍 --- haml
- Ruby on rails 插件File-Column问题
- 针对Ruby on Rails开发的Emacs插件
- Ruby On Rails开发所需插件整理
- Ruby on Rails 中你使用了Kaminari 后,千万不要再引入will_pagination 这个Gem 了
- Ruby on rails常用插件下载
- ruby on rails 一步步开始(2)分页和简单查询
- Ruby On Rails开发环境配置及插件安装
- Ruby On Rails 开发环境IDE 插件安装
- ubuntud下的vim插件(Ruby on rails)
- ruby on rails 安装fullcalendar插件
- windows 安装使用vim,及安装插件spark和rails.vim ,来作为ruby on rails 开发IDE
- Ruby On Rails框架下的翻页/排序插件