我注意到像mislav-will_paginate
這樣的分頁寶石相當流行。這是因爲Rails沒有內置的分頁解決方案,或者因爲內置的解決方案不太好?Rails是否有內置的分頁解決方案?
回答
Rails內置分頁功能,但它是一個簡單的模塊,不適合所有需求。除非你有特定的分頁需求,它應該適合大多數目的。
我建議searchlogic。它有內置的分頁和許多其他黑洞的東西。
- 簡易過濾
- 分頁
- 排序
和..爲所有好的幫手。
典說,超過一千字(不要被HAML例子會感到困惑,你可以,如果你喜歡他們正常使用ERB模板,該代碼/結構是相同的):
控制器:
def index
@search = User.new_search(params[:search])
@users, @users_count = @search.all, @search.count
end
分頁東西在視圖中:
== Per page: #{per_page_select}
== Page: #{page_select}
排序爲/由視圖:
- unless @users_count.zero?
%table
%tr
%th= order_by_link :account => :name
%th= order_by_link :first_name
%th= order_by_link :last_name
%th= order_by_link :email
- @users.each do |user|
%tr
%td= user.account? ? user.account.name : "-"
%td= user.first_name
%td= user.last_name
%td= user.email
方便,簡單和快速篩選:
- form_for @search do |f|
- f.fields_for @search.conditions do |users|
= users.text_field :first_name_contains
= users.date_select :created_after
- users.fields_for users.object.orders do |orders|
= orders.select :total_gt, (1..100)
= f.submit "Search"
,一切工作在一起,所以改變頁面,然後進行排序,並添加過濾器不會失去任何其他設置:)工作。
所有你需要的是在你的environment.rb:
config.gem "searchlogic"
,並安裝它:rake gems:install
也會檢出online example
這與衆多其他分頁解決方案相比如何?爲什麼選擇這個比其他人? – propstop 2009-06-08 22:52:35
那麼,我以前使用的是will_paginate,它曾經是默認的分頁器。 searchlogic的美麗是 a)一切都集成在一起(你不必得到paginator一起過濾/排序,這是自動/神奇地完成)。 b)它非常積極地開發atm,它看起來相當成熟。 c)開發人員生成非常漂亮和直觀的庫,我還會推薦他的auth庫'authlogic'。在文檔中,您會發現爲什麼authlogic比其他auth插件更好的說法:)。 但是,只是在你的一個數據視圖中嘗試一下。 – reto 2009-06-09 08:03:11
在Rails 2.0的ActionController的分頁能力和去除變成一個名爲'classic_pagination'的向後兼容插件。然而,從我爲自己尋找分頁解決方案的共識似乎是,使用'classic_pagination'並不是最佳選擇。
看了幾個播客後,我選擇嘗試使用will_paginate插件,並沒有回頭。它快速,易於使用且維護良好。
我相信即使是V2的Searchlogic也推薦使用它。
如果您使用Rails 3 Kaminari插件將非常方便分頁。 Github Railscasts
- 1. MVC 4是否有內置的站點地圖解決方案?
- 2. 我的緩存解決方案解決方案是否安全?
- 3. OpenAM + Winstone是否有解決方案?
- 4. 優化的分頁解決方案
- 5. Salat/Cashbah的分頁解決方案
- 6. 配置時間戳Rails(解決方案)
- 7. 是否有解決方案ToolStrip不泄漏內存
- 8. 是否有App Engine共享內存或同等解決方案?
- 9. Rails標記解決方案
- 10. Rails解決方案結構
- 11. 分頁和替代解決方案
- 12. php計算解決方案分頁
- 13. Django分頁評論..有沒有現有的解決方案?
- 14. 是否有任何有效的解決方案/方法?
- 15. SVM分類是否總是產生獨特的解決方案?
- 16. 分支解決方案
- 17. Resharper解決方案設置
- 18. 是否有任何使用Rails 3.0和Facebook的穩定解決方案?
- 19. 是否有解決方案來推廣此方法?
- 20. 是否有可用的集成emacs和TFS的解決方案?
- 21. 是否有其他解決方案,而不是iBeacon for iOS?
- 22. Visual Studio:單一解決方案還是很多解決方案?
- 23. Can Cloud Spanner是否支持內部部署解決方案?
- 24. 是否有解決通過代理的pub依賴解決方案?
- 25. 是否有像記事本中的VS解決方案++
- 26. 快速持久緩存是否有很好的解決方案?
- 27. 是否有燒瓶的音頻流解決方案?
- 28. 是否有Smarty的一個國際化/翻譯解決方案?
- 29. 是否有此穿越問題的解決方案?
- 30. 是否有開源的CAPTCHA解決方案?
will_paginate是非常實際上是「內置」的解決方案,這些天/ – 2009-06-09 10:24:16
似乎searchlogic使用will_paginate,所以你不需要使用searchlogic得到它。不過,它看起來很酷。 http://rdoc.info/github/binarylogic/searchlogic/master/file/README.rdoc#Pagination_(leverage_will_paginate) – calasyr 2010-10-30 01:25:20