2

假设我有以下三个对象:

class Filing < ActiveRecord::Base
    belongs_to :company
    has_many :people , :dependent => :destroy
end

class Company < ActiveRecord::Base
    has_many :filings
end

class Person < ActiveRecord::Base
    belongs_to :filing
end

我正在尝试发出一个请求,该请求返回带有关联公司的文件和一个包含其关联人员的数组。这用于 GET 归档/:id 的 API 请求

我看到了关于使用 ActiveRecord 连接表的文档,但是当我运行以下查询时:

Filing.joins(:people,:company)

结果集中似乎没有包括关联的人员或公司。如果不返回关联的数据,我为什么要加入,我有点困惑。我在这里想念什么?我应该运行什么查询?

更新

如评论中所述。我希望能够生成以下输出:

{ "filing" => { "filing_id" => 123, "company" => { ... }, "people" => [{"person_id" => 1}, {"person_id" => 2}] } }
4

2 回答 2

4

在评论者的帮助下,我最终找到了答案。所有需要调用的是:

Filing.find( id , :include => [:company,:people] )
于 2012-11-19T18:03:01.930 回答
0

我认为您想要的是以下内容:

Filing.includes([:company, :people]).where(:filing => [:id => 756])
于 2012-11-19T21:40:02.720 回答