Rails映射唯一日期并相应地进行渲染

时间:2017-01-31 20:54:12

标签: ruby-on-rails

我有一些dateTime时间戳的记录,我希望从它们获取唯一的日期并在每天渲染事件 基本上是:

让我们说我有日期的事件:1月4日,4日,4日,4日,5日,7日,7日,我需要变得独特 - 1,4,5,7 然后我希望在这些日期中呈现事件:

1月1日

  • 活动名称

1月4日

  • 活动名称
  • 活动名称
  • 活动名称

1月5日

  • 活动名称

活动名称等 我有一个方法,但每次循环时都会调用数据库

- events.select(:start_time).collect{ |i|  i.start_time.to_date }.uniq.each do |e|
  %br= e
  = render events.where(start_time: e..e.end_of_day)

为了更好地理解:http://imgur.com/a/ohYTm

1 个答案:

答案 0 :(得分:1)

我相信您正在寻找的是group_by method

所以你可以说:

- events.group_by {|event| event.start_time.to_date }.each do |start_time, events_for_date|
  %br= start_time
  = render events_for_date