1
私は期待どおりに熱心な読み込みができません。「両方向」の熱狂的な読み込み
私はバリアントをHAS_MANY製品、そしてもちろん製品 belongs_toの各バリアントを持っています。
私は、製品とそのすべてのバリエーションをロードするために、このようなコードを使用:
products = Product.includes(:variants)
これは動作します:すべての製品およびすべての変異体が2つだけのクエリがロードされています。ただし、各バリアントの製品がロードされていないため、次のコードで別のSQLクエリが発生します。
puts products[0].variants[0].product.title
なぜ、どのように修正できますか? Product.includes(:variants => :product)
が動作すると思いますが、Product-dataがすでに利用可能であるため、1つの余計な大きすぎる不要なSQLクエリが発生します。
を私はまだ余分なSQLクエリを必要とすることを言ったように:あなたは熱心読み込み、それをしたいのであれば、あなたは何をする必要があるだろう。 – Jonatan