加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读