データベースからオブジェクトを取得するときに不要なラウンドトリップを回避するために、ミキシング:include
とアソシエーションを実現できるかどうか、またその方法を考えていました。:joins
たとえば、次のようなモデル空間がある場合:
————— ————— —————
| A | 0..1 ————— * | B | * ————— 1 | C |
————— ————— —————
ここでは、ビューに表示するために既知の識別子で A のインスタンスをロードしていますが、B と C もロードしたいと思います (B via:include
と C via :joins
)。これはできますか?これまでのところ、私は:include
のみを使用しています。
A.find params[:id], :include => [ { :b => :c } ]
これにより、2 つの追加ラウンドトリップが自然に生成されます (1.、ID による A のフェッチ、2. 関連する B のフェッチ、3. 関連する C のフェッチ)。