3

我想知道在从数据库中检索对象时是否以及如何实现混合: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 } ]

这自然会生成两个额外的往返(1.,通过 id 获取 A,2.获取关联的 B,3.获取关联的 C)。

4

1 回答 1

0

由于您使用的是 Rails 3,因此您可以链接这些方法。

A.includes(:b).joins(b: :c).find(params[:id])
于 2013-04-10T13:06:21.917 回答