Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/53.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Ruby group_按日期每7天一次_Ruby On Rails_Ruby - Fatal编程技术网

Ruby on rails Ruby group_按日期每7天一次

Ruby on rails Ruby group_按日期每7天一次,ruby-on-rails,ruby,Ruby On Rails,Ruby,如何按周开始和结束日期对记录集合进行排序?在看了strf之后,我能得到的最接近的结果是按周数分组 weeks = my_data.group_by{|x| x.created_at.strftime('%U %Y') } {"34 2015"=> [#<DoctorRecommendation:0x007fd663196ea0 created_at: Tue, 25 Aug 2015 22:29:44 UTC +00:00, patient_profile

如何按周开始和结束日期对记录集合进行排序?在看了strf之后,我能得到的最接近的结果是按周数分组

weeks = my_data.group_by{|x| x.created_at.strftime('%U %Y') }



 {"34 2015"=>
  [#<DoctorRecommendation:0x007fd663196ea0
    created_at: Tue, 25 Aug 2015 22:29:44 UTC +00:00,
    patient_profile_id: 104,],
 "33 2015"=>
  [#<DoctorRecommendation:0x007fd663194ce0
    created_at: Thu, 20 Aug 2015 13:41:37 UTC +00:00,
    patient_profile_id: 21,,
   #<DoctorRecommendation:0x007fd66319f500
    created_at: Tue, 18 Aug 2015 02:47:30 UTC +00:00,
    patient_profile_id: 61,
   #<DoctorRecommendation:0x007fd66319db38
    created_at: Tue, 18 Aug 2015 02:47:29 UTC +00:00,
    patient_profile_id: 85,
   ]
  }
weeks=my_data.group_by{x|x.created_at.strftime(“%U%Y”)}
{"34 2015"=>
[#

[#这里的代码可以满足您的需求,但需要大量的日期解析。Ruby方面的高手可能会对此进行优化

my_data.group_by do |x|
  date = Date.parse(x.created_at.strftime("%F"))
  monday = date - date.strftime("%u").to_i
  sunday = monday + 7
  "#{monday.strftime("%F")} - #{sunday.strftime("%F")}"
end

我的另一个建议是查询在日期和今天创建的最小值,用ruby非常快地生成这段时间内的所有星期,然后进行查询。如果您获得所有数据,这会比较慢,但如果您只需要几周,则会快得多。

下面的代码可以满足您的需要,但需要大量的日期解析。有人更擅长Ruby可能会对此进行优化

my_data.group_by do |x|
  date = Date.parse(x.created_at.strftime("%F"))
  monday = date - date.strftime("%u").to_i
  sunday = monday + 7
  "#{monday.strftime("%F")} - #{sunday.strftime("%F")}"
end

我的另一个建议是查询在日期和今天创建的最小值,用ruby非常快地生成这段时间内的所有星期,然后进行查询。如果您获得所有数据,这会比较慢,但如果您只需要几周,则会快得多。

下面的代码可以满足您的需要,但需要大量的日期解析。有人更擅长Ruby可能会对此进行优化

my_data.group_by do |x|
  date = Date.parse(x.created_at.strftime("%F"))
  monday = date - date.strftime("%u").to_i
  sunday = monday + 7
  "#{monday.strftime("%F")} - #{sunday.strftime("%F")}"
end

我的另一个建议是查询在日期和今天创建的最小值,用ruby非常快地生成这段时间内的所有星期,然后进行查询。如果您获得所有数据,这会比较慢,但如果您只需要几周,则会快得多。

下面的代码可以满足您的需要,但需要大量的日期解析。有人更擅长Ruby可能会对此进行优化

my_data.group_by do |x|
  date = Date.parse(x.created_at.strftime("%F"))
  monday = date - date.strftime("%u").to_i
  sunday = monday + 7
  "#{monday.strftime("%F")} - #{sunday.strftime("%F")}"
end

我的另一个建议是查询date和today创建的最小值,使用ruby非常快速地生成这两周之间的所有周,然后进行查询。如果获取所有数据,速度会较慢,但如果只需要几周,速度会快得多。

您可以使用Rails的日期扩展来获取一周的开始和结束时间(可配置),并使用 要创建您的范围,请执行以下操作:

weeks = my_data.group_by do |x|
  date = x.created_at
  left = date.beginning_of_week.strftime('%-m/%-d/%Y')
  right = date.end_of_week.strftime('%-m/%-d/%Y')
  "#{left} - #{right}"
end

您可以使用Rails的日期扩展来获取一周的开始和结束(可配置),并使用 要创建您的范围,请执行以下操作:

weeks = my_data.group_by do |x|
  date = x.created_at
  left = date.beginning_of_week.strftime('%-m/%-d/%Y')
  right = date.end_of_week.strftime('%-m/%-d/%Y')
  "#{left} - #{right}"
end

您可以使用Rails的日期扩展来获取一周的开始和结束(可配置),并使用 要创建您的范围,请执行以下操作:

weeks = my_data.group_by do |x|
  date = x.created_at
  left = date.beginning_of_week.strftime('%-m/%-d/%Y')
  right = date.end_of_week.strftime('%-m/%-d/%Y')
  "#{left} - #{right}"
end

您可以使用Rails的日期扩展来获取一周的开始和结束(可配置),并使用 要创建您的范围,请执行以下操作:

weeks = my_data.group_by do |x|
  date = x.created_at
  left = date.beginning_of_week.strftime('%-m/%-d/%Y')
  right = date.end_of_week.strftime('%-m/%-d/%Y')
  "#{left} - #{right}"
end

2015年10月8日至2015年8月16日和2015年8月17日至2015年8月23日至2015年8月10日至2015年8月17日至2015年8月23日至2015年8月16日和2015年8月17日至2015年8月23日至2015年8月10日至2015年8月16日和2015年8月17日至2015年8月23日至2015年8月23日