好的,所以我有
>> list = Request.find_all_by_artist("someBand") => [#<Request id: 1,artist: "someBand",song: "someSong",venue: "Knebworth - Stevenage,United Kingdom",showdate: "2011-07-01",amount: nil,user_id: 2,created_at: "2011-01-01 18:14:08",updated_at: "2011-01-01 18:14:09".............
接着
list.group_by(&:created_at).map {|k,v| [k,v.length]}.sort => [[Sat,01 Jan 2011 18:14:08 UTC +00:00,10],[Sun,09 Jan 2011 18:34:19 UTC +00:00,1],09 Jan 2011 18:38:48 UTC +00:00,09 Jan 2011 18:51:10 UTC +00:00,09 Jan 2011 18:52:30 UTC +00:00,[Thu,10 Feb 2011 02:22:08 UTC +00:00,10 Feb 2011 20:02:20 UTC +00:00,1]]
问题是我有几个太阳,1月9日和10日的一对,而不是这样的一个
这是我需要的
=> [[Sat,4],2]]
解决方法
时间是一个相当复杂的对象.假设您要按创建日期而不是全部时间进行分组,请在模型中开始创建自定义方法以返回组标准.
该方法应该返回创建日期,可能返回字符串.
def group_by_criteria created_at.to_date.to_s(:db) end
然后,通过该方法进行分组.
list.group_by(&:group_by_criteria).map {|k,v.length]}.sort
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。