Ruby on rails 4 如何使用having和group查询ActiveRecord

Ruby on rails 4 如何使用having和group查询ActiveRecord,ruby-on-rails-4,activerecord,group-by,having,Ruby On Rails 4,Activerecord,Group By,Having,我有一个简单的预约模型,它存储了开始时间和用户id。我希望在接下来的7天内以升序开始所有预约,并按天分组。理想情况下,结果将是散列或多维数组,例如 { '30 March' => [appt1,appt12, appt3], '31 March' => [appt5,appt2, appt7,appt8], '1 April' => [appt10,appt11,appt9, appt6,appt4], '2 April' =&

我有一个简单的预约模型,它存储了开始时间和用户id。我希望在接下来的7天内以升序开始所有预约,并按天分组。理想情况下,结果将是散列或多维数组,例如

{
  '30 March' => 
     [appt1,appt12, appt3],
  '31 March' =>
     [appt5,appt2, appt7,appt8],
  '1 April' => 
     [appt10,appt11,appt9, appt6,appt4],
  '2 April' =>
     [appt15,appt21]
}
下面的查询得到了所需的结果,但不是我想要的格式

Appointment.order(start_time: :asc).where("start_time <= ?", 7.days.from_now.end_of_day)

有没有一种方法可以构造查询,或者我需要单独格式化结果?

一种方法是使用group\U by


这就是我最后要做的,我只是想知道这是否可以作为sql查询的一部分来完成
appointments = Appointment.order(start_time: :asc).
  where("start_time <= ?", 7.days.from_now.end_of_day).
  group_by { |a| a.start_time.to_date }