2012-11-27 17 views
5

私の団体はこのようなものです:私のコントローラでRailsのネストされたN + 1クエリ問題

vendor has shipments 
shipment has order 
order has products 

私は

@shipments = @vendor.shipments.includes(:order) 

として書かれている。しかし私の見解では、私は

shipment.order.products.collect(&:name) 
のような使用しています

これは、RailsのbulletのgemでN + 1 Queryの問題を返しています

誰でもNested N + 1 Query Issueのこの問題を解決するのにお手伝いしますか? コントローラに書き込む必要はありますか?

答えて

9
@shipments = @vendor.shipments.includes(:order => :products) 

が有効です。それについての詳細はこちらhttp://guides.rubyonrails.org/active_record_querying.html#nested-associations-hash

+0

ありがとうナッシュ。それは働いています。以前は@ vendor.shipments.includes(:order =>(:includes =>:products))などを試しました。リンクを共有してくれてありがとう。 – Abhi

+0

うれしかった! –

関連する問題