我注意到像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