ruby-on-rails – 我如何按天分组而不是日期?
发布时间:2020-12-16 20:34:32 所属栏目:百科 来源:网络整理
导读:好的,所以我有 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",
好的,所以我有
>> 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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |