我在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 }
答案 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。