我想要一个这样的返回集
A
.select('a.id, a.name, b.date, SUM(b.amount)')
.includes(:b)
.group('a.id, b.date")
而.includes()则忽略了.select()。我使用类似这样的东西生成一个几乎相同的查询。(但与我选定的项目)
A
.select('a.id, a.name, b.date, SUM(b.amount)')
.joins('LEFT OUTER JOIN b ON a.b_id = b.id')
.group('a.id, b.date")
然而,问题是Rails不知道如何处理B
属性。它不像.includes()那样构造嵌套的结果集。
问题:是否有可能得到一个像。includes结构的返回集,但是使用。JOINS ('LEFT JOINS')。
我一直在探索一些想法,其中包括手动迭代返回集,并模拟A.new()
和B.new()
并创建我正在寻找的嵌套结果。
Andrew
你可以试试下面的代码,看看它是否有效
A
.joins(:b)
.select('a.id, a.name, b.date, SUM(b.amount)')
.group('a.id, b.date")