Ruby on rails 如何使用联接模拟ActiveRecord.includes()返回集。

Ruby on rails 如何使用联接模拟ActiveRecord.includes()返回集。,ruby-on-rails,ruby,ruby-on-rails-3,activerecord,Ruby On Rails,Ruby,Ruby On Rails 3,Activerecord,我想要一套这种性质的退货套装 A .select('a.id, a.name, b.date, SUM(b.amount)') .includes(:b) .group('a.id, b.date") 但是.includes()只是忽略.select()。我使用类似的方法生成了一个几乎相同的查询。(但使用我选择的项目) 然而,问题是Rails不知道如何处理B属性。它不像.includes()那样构造嵌套结果集 问题:是否可以获得类似.includes但使用.joins('LEFT joins'

我想要一套这种性质的退货套装

A
.select('a.id, a.name, b.date, SUM(b.amount)')
.includes(:b)
.group('a.id, b.date")
但是.includes()只是忽略.select()。我使用类似的方法生成了一个几乎相同的查询。(但使用我选择的项目)

然而,问题是Rails不知道如何处理
B
属性。它不像.includes()那样构造嵌套结果集

问题:是否可以获得类似.includes但使用.joins('LEFT joins')的返回集结构

我一直在探索一些想法,包括手动迭代返回集,模拟
A.new()
B.new()
并创建我正在寻找的嵌套结果

安德鲁

你能试试下面的代码,看看它是否有效吗

A
.joins(:b)
.select('a.id, a.name, b.date, SUM(b.amount)')
.group('a.id, b.date")
这一页可能会有所帮助。
A
.joins(:b)
.select('a.id, a.name, b.date, SUM(b.amount)')
.group('a.id, b.date")