2013-11-12 5 views
3

я могу создать хэш вроде этого:Как группировать объекты по каждой дате в пределах диапазона дат

@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_date и time_off.end_date.

Как бы это сделать?

ответ

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 

Это будет производить Hash с объектами Range в качестве ключей и массив TimeOff как значения.

Документация о Range класса (Ruby 1.9.3): http://www.ruby-doc.org/core-1.9.3/Range.html

Надежда, что помогает!

Смежные вопросы