ruby on rails中的分页插件Kaminari
1.安裝
在Gemfile中增加一行
然后啟動bundler
$ bundle install2.查看kaminari的配置文件
執行以下命令,會在 config\initializers 下生成一個配置文件kaminari_config.rb
查看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() 一樣,例如:
4.Model 配置
如果統一的 per_page 全局設置不能滿足你的要求,你希望針對每一種 model 設置不同的 per_page ,那么可以這樣
class Event < ActiveRecord::Basepaginates_per 5 end這樣就省去你在每個 controller 中各自使用 .per() 方法了
def index@events = Event.page(params[:page]).per(5)end5.View中的使用
在頁面上,要顯示分頁的話,用它提供的 helper 方法即可
<%= paginate @Event %>這樣會生成類似 ? First ? Prev ... 2 3 4 5 6 7 8 9 10 ... Next ? Last ? 的 html
如果你想修改其中的文字的話,可以通過修改相應的config/ locales 下的語言文件en.yml來實現
例如:在默認語言en:之后添加
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 中這樣寫即可
這時候 kaminari 就會根據 minikm 子文件夾下設置的view 來渲染分頁界面了
總結
以上是生活随笔為你收集整理的ruby on rails中的分页插件Kaminari的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: u盘修复linux系统,电脑怎么修复u盘
- 下一篇: ireport导出pdf记录