【发布时间】:2017-02-11 19:29:45
【问题描述】:
我想向我的事件模型添加一个范围,按列对我的事件进行分组,然后返回最早日期的事件。这是我正在尝试的方法,但出现错误。
scope :closest, -> {
group(:some_column).having('date = MIN(date)')
}
Event.closest ==> 应该从每个父母那里返回最早的子事件。以下是错误:
ActiveRecord::StatementInvalid: PG::GroupingError: ERROR: column “events.id”必须出现在 GROUP BY 子句中或用于 聚合函数
【问题讨论】:
-
如果两条记录的日期相同,即所有记录的最小日期怎么办。那么您期望多条记录对吗?
-
嗯,它实际上是日期时间,所以两条相同的记录不太可能出现,但理论上,如果它们相同,那么我希望有两条。但这不是这里发生的事情。
-
@Dinesh 实际上在控制台中看到一条错误消息(已编辑答案)
标签: ruby-on-rails activerecord