我有这个查询
documents = Broker.find(12).clients.left_joins(:documents).select("clients.id, count(documents.expiration) FILTER (WHERE documents.expiration < '#{Date.today}') AS expired").group("1")
它返回一个这样的表:
<表类>id 过期 tbody><<tr>1 4 23 51 62 表类>
这是因为在表达式末尾调用了.group
。文档表示:
返回一个基于组属性的不同记录的数组
因此,为了获得一个activerecord关系,您应该消除.group
的使用。