Rails 中添加翻頁功能

背景

去年在公司用rails寫了個(gè)靜態(tài)頁面探孝,用于監(jiān)控自動(dòng)化FTP服務(wù)器的磁盤使用量情況审丘,當(dāng)數(shù)據(jù)超過設(shè)定值后自動(dòng)發(fā)送郵件報(bào)警。頁面中有一個(gè)Form疯暑,用于添加監(jiān)控項(xiàng)训柴。剛開始監(jiān)控的目錄就七八項(xiàng),頁面看起來還好妇拯,但現(xiàn)在增加到了近20項(xiàng)幻馁,整個(gè)頁面看起來就有點(diǎn)臃腫洗鸵,所以打算抽空寫個(gè)翻頁按鈕,將頁面篇幅限制一下仗嗦。

一膘滨、工具選擇

雖然翻頁功能可以自己用js實(shí)現(xiàn),但是考慮到自己還是個(gè)js小白稀拐,果斷放棄火邓,轉(zhuǎn)而求助于第三方庫(kù)....逃~??
經(jīng)過一番度娘后不禁使我感嘆:Rails的插件是真他娘的少啊??!
不過好在還是有一款比較簡(jiǎn)單易用的開源插件:will_paginate德撬。 該插件使用起來相當(dāng)便捷铲咨,僅僅幾行代碼就能搞定翻頁功能。除此以外蜓洪,它還有個(gè)bootstrap版本纤勒。如果頁面使用了bootstrap框架,就選擇will_paginate-bootstrap吧隆檀!
由于本人項(xiàng)目中使用了到bootstrap摇天,所以采用后者。

二刚操、安裝will_paginate:
  1. 在rails項(xiàng)目的Gemfile中添加 gem 'will_paginate-bootstrap'
  2. 再使用bundle install命令安裝
  3. 重啟rails server即可
三闸翅、will_paginate的使用

前面提到過,will_paginate的使用特別簡(jiǎn)單菊霜,只需在controller和view中各增加一行代碼即可。
以我的index頁面為例:
1. 對(duì)controller中的index方法中的實(shí)例方法進(jìn)行下修改

def index
    #將原始的
    @users = User.all
    #修改為
    @users = User.paginate(page: params[:page], :per_page => 5)
end

該實(shí)例變量會(huì)作為view中form的數(shù)據(jù)來源济赎。
而最后的一個(gè)參數(shù) :per_page即為每頁顯示的最大數(shù)量鉴逞,此處表示每頁5行。

2. 在view頁面中添加一行翻頁器代碼:
我將該翻頁器放在form控件之后司训,也就是顯示在form的下方构捡。

<%= will_paginate @users , renderer: BootstrapPagination::Rails'%>

好了,趕緊看看效果吧壳猜!


翻頁器顯示效果
翻頁后的url

可以看到勾徽,翻頁器已經(jīng)添加好了,并且實(shí)際翻頁效果也不錯(cuò)统扳,url會(huì)根據(jù)頁面變化喘帚,并且UI確實(shí)也是bootstrap風(fēng)格。只是這兩個(gè)英文button看起來還是不太搭咒钟,容易被誤會(huì)有裝逼的嫌疑...還是改成中文的吧吹由!??
另外,翻頁器默認(rèn)在最左邊朱嘴,看起來也怪怪的倾鲫,強(qiáng)迫癥表示特別不滿意!

3. 修改翻頁器的中文顯示
will_paginate提供了一些配置參數(shù)可選粗合,首先要做的就是在項(xiàng)目的config\initializers目錄中創(chuàng)建一個(gè)名為will_paginate.rb的配置文件。然后在該文件中添加以下兩行代碼乌昔,然后重啟rails server即可隙疚。

WillPaginate::ViewHelpers.pagination_options[:previous_label ]   =  "前一頁"
WillPaginate::ViewHelpers.pagination_options[:next_label ]       =  "后一頁"

不消多說,也能知道這兩行代碼有啥用磕道。??

4供屉、修改翻頁器的顯示位置
這個(gè)就是CSS的范疇了。如下捅厂,給翻頁器添加一個(gè)class贯卦,然后css控制下浮動(dòng)位置即可。

#view中給翻頁器添加一個(gè)class
<%= will_paginate @users , renderer: BootstrapPagination::Rails ,class: 'will_page'%>

#CSS代碼
<style type="text/css">
  .will_page {
        float:right;
              }
</style>

以下是添加翻頁器后的頁面效果焙贷,有了翻頁器看起來清爽許多~

大功告成撵割!從此告別冗長(zhǎng)的form頁面

參考:
關(guān)于rails插件will_paginate的配置和用法

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市辙芍,隨后出現(xiàn)的幾起案子啡彬,更是在濱河造成了極大的恐慌,老刑警劉巖故硅,帶你破解...
    沈念sama閱讀 211,817評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件庶灿,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡吃衅,警方通過查閱死者的電腦和手機(jī)往踢,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,329評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來徘层,“玉大人峻呕,你說我怎么就攤上這事∪ばВ” “怎么了瘦癌?”我有些...
    開封第一講書人閱讀 157,354評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)跷敬。 經(jīng)常有香客問我讯私,道長(zhǎng),這世上最難降的妖魔是什么西傀? 我笑而不...
    開封第一講書人閱讀 56,498評(píng)論 1 284
  • 正文 為了忘掉前任斤寇,我火速辦了婚禮,結(jié)果婚禮上池凄,老公的妹妹穿的比我還像新娘抡驼。我一直安慰自己,他們只是感情好肿仑,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,600評(píng)論 6 386
  • 文/花漫 我一把揭開白布致盟。 她就那樣靜靜地躺著碎税,像睡著了一般。 火紅的嫁衣襯著肌膚如雪馏锡。 梳的紋絲不亂的頭發(fā)上雷蹂,一...
    開封第一講書人閱讀 49,829評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音杯道,去河邊找鬼匪煌。 笑死,一個(gè)胖子當(dāng)著我的面吹牛党巾,可吹牛的內(nèi)容都是我干的萎庭。 我是一名探鬼主播,決...
    沈念sama閱讀 38,979評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼齿拂,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼驳规!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起署海,我...
    開封第一講書人閱讀 37,722評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤吗购,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后砸狞,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體捻勉,經(jīng)...
    沈念sama閱讀 44,189評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,519評(píng)論 2 327
  • 正文 我和宋清朗相戀三年刀森,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了踱启。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,654評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡研底,死狀恐怖禽捆,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情飘哨,我是刑警寧澤,帶...
    沈念sama閱讀 34,329評(píng)論 4 330
  • 正文 年R本政府宣布琐凭,位于F島的核電站芽隆,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏统屈。R本人自食惡果不足惜胚吁,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,940評(píng)論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望愁憔。 院中可真熱鬧腕扶,春花似錦、人聲如沸吨掌。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,762評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至窿侈,卻和暖如春炼幔,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背史简。 一陣腳步聲響...
    開封第一講書人閱讀 31,993評(píng)論 1 266
  • 我被黑心中介騙來泰國(guó)打工乃秀, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人圆兵。 一個(gè)月前我還...
    沈念sama閱讀 46,382評(píng)論 2 360
  • 正文 我出身青樓跺讯,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親殉农。 傳聞我的和親對(duì)象是個(gè)殘疾皇子刀脏,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,543評(píng)論 2 349

推薦閱讀更多精彩內(nèi)容

  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫(kù)、插件统抬、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,066評(píng)論 4 62
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理火本,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,633評(píng)論 18 139
  • 真正的愛,不是累了就分手囱淋,不是不合適就分開建炫,是即使再累也想在一起,即使不合適也想努力爭(zhēng)取幸海。累是因?yàn)樵诤酰缓线m是因...
    紫玲閱讀 256評(píng)論 0 0
  • 潮汕之旅第二天,來到了南澳島揍魂,花了十二億元建成的南澳大橋?yàn)槟习娜嗣窠鉀Q了很多問題,同時(shí)也給軍人保護(hù)海岸線添加了便利...
    天牛成長(zhǎng)記閱讀 160評(píng)論 0 0
  • 我吃過薄荷
    我吃薄荷閱讀 305評(píng)論 0 0