2

次の3つのオブジェクトがあると仮定します。

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 filing /: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 に答える