我可以按年份对结果进行分页吗?

时间:2011-06-24 21:36:29

标签: ruby-on-rails pagination will-paginate

我在25年内每年收集大约100件物品。每年按页面列出它们会很好,这样可以更容易地深入到特定对象。是否有一个插件或gem用于按年份分页Rails集合,而不是固定数量的项目?也许甚至一个月?是否可以调整will_paginate来做到这一点?

编辑:

ss = Services.all.group_by { |s| s.date_of_service.year }

这会生成一个有序的哈希,我可以通过键对其进行分页。

ss.keys.each { |k| p ss[k].count }

2 个答案:

答案 0 :(得分:1)

我认为你不会找到这样的宝石。使用范围自己实现简单的分页系统应该不难。

我想你多年没有单独的表了。因此,要检索唯一年份的完整列表,您应该使用group方法。

  scope :years, lambda { select('year').group('year') }
  scope :year, lambda { |year| where(:year => year) }

另一种选择是keruilin建议的。使用year范围内的任何分页宝石(我使用kaminari)。

答案 1 :(得分:0)

我使用will_paginate实现一般分页。不管你在哪一年,你都可以获得每页10-25个结果。

然后,我将实现第二种过滤机制,通过该机制,您可以使用一些好的AR / SQL魔术查看年度结果。使用我的应用程序,我使用下拉列表选择年份,但您可以使用其他一些UI元素。

我不能确定will_paginate能否帮助您解决年度问题,但我不建议您根据自己的需要进行定制。只是创建一个兼容性问题,除非你monkeypatch。