2016-03-25 3 views
1

で同じクエリ内のインスタンスの子を取得しますが、これらは動作しません:1つのアクティブレコードクエリ内のすべてのオブジェクトのすべての子を取得するために必要なのはRailsの

Class.includes(:children)

Class.joins(:children).uniq.all

どちらません2人の子供たちが子供を引き取る。それはのような応答を必要としています:

オブジェクト:{ "param1":"value1", ... "children" : [...] }

それは雄弁ORM(PHP)あなたはJSONとしてフォーマット子供を含めるしようとしているようですね

+0

子供から始めることはできますか?親クラスのIDを知っていますか?すなわち: 'Children.where(parent_id:Parent.ids)' –

答えて

3

で.withのようなもの()です。これは、あなたが望むものを返します:

Foo.find(1).as_json({ include: :bars }) 
# => {"foo"=>{"id"=>1, "name"=>"first", :bars=>[{"id"=>1, "amount"=>5}, {"id"=>2, "amount"=>5}]}} 

あなたが使用することができ、他のどのようなオプションを参照してas_jsonのためのAPIドキュメントを見ることができます。いくつかの一般的なフィールドは、返されるフィールドを制限するためにmethodsonlyです。

関連する問題