2009-08-20 89 views
1

我正在使用Rails mislav-will_paginate插件來分頁我的記錄。我想產生下面的輸出,無論是否有多個頁面:覆蓋Rails mislav-will_paginate插件

X - Y of Z 
1 - 100 of 1826 

will_paginate在WillPaginate :: ViewHelpers返回nil,如果只有一個記錄頁。如果只有一個頁面,或者上面的輸出被多個頁面的普通輸出所包圍,我想用最簡潔的方式覆蓋它。

我重寫了WillPaginate :: LinkRenderer的to_html方法來產生這個輸出,但是我不知道如果只有一頁記錄時如何產生它。

我是否應該將代碼移到其他地方生成Z的X-Y,並且從我的重寫to_html方法以及如果返回nil時將其作爲我的will_paginate調用的地方調用它?如果是這樣,它應該住在哪裏?

+0

我假設這些數字代表當前頁面上顯示的項目數量以及總數?無論分頁鏈接是否存在,您都希望始終顯示此內容?在那種情況下,爲什麼不把它完全保留在will_paginate調用之外,並在你的視圖或自定義幫助器方法中實現呢? – ryanb 2009-08-20 21:06:50

+0

這兩個假設都是正確的。我很想把它們放在一起,因爲它們在邏輯上是相關的;每次我打電話給will_paginate我也想顯示總數。我也想顯示will_paginate產生的頁面鏈接之間的總數,ala Gmail。最簡單的做法似乎是讓will_paginate在to_html方法中輸出總計。 – nfm 2009-08-21 01:23:08

回答

1

好吧,這裏是我所做的:

  • 創建一個模塊分頁程序
  • 包括在我的模型的幫手的分頁程序模塊
  • 在我的觀點稱爲Paginator.paginate
  • 定義Paginator.paginate到如果只有一個頁面,則調用Paginator.produce_totals,或者爲多個頁面調用will_paginate(常規方法)
  • 定義Paginator.produce_totals將「X-Y of Z」總數輸出爲上述
  • 列入我WillPaginate的分頁程序模塊:: LinkRenderer覆蓋類
  • 在我的首要適當的點調用Paginator.produce_totals to_html方法

唷!可以發佈代碼,如果它對任何人都有用 - 請問。

+0

爲什麼不把這個插件擴展到will_paginate或者fork/branch will_paginate來包含這個支持並提交一個pull請求? – 2009-09-29 13:02:18