如何按日期范围内的每个日期对对象进行分组

时间:2013-11-12 20:15:39

标签: ruby-on-rails postgresql group-by ruby-on-rails-4

我可以像这样创建一个哈希:

@time_offs_by_date = @time_offs.group_by{ |time_off| time_off.start_date}

然后我使用

进行迭代
@time_offs_by_date[date] # I am drawing a calendar date-by-date
# I then list details about every object grouped by the specified date

我想按照time_off.start_datetime_off.end_date之间的每个日期对我的对象进行分组。

我该怎么做?

1 个答案:

答案 0 :(得分:3)

这应该这样做:

@time_offs_by_date = @time_offs.group_by{ |time_off| time_off.start_date..time_off.end_date }

@time_offs_by_date.each do |range, time_offs|
  # do your logic here
end

这将生成一个带有Range对象的Hash作为键,以及一个TimeOff数组作为值。

关于类Range(Ruby 1.9.3)的

文档http://www.ruby-doc.org/core-1.9.3/Range.html

希望有所帮助!