2013-03-13 54 views
3

我想知道是否以及如何在关联中实现混合:include:joins以避免在从数据库中检索对象时不必要的往返。混合:包括和:在ActiveRecord查询中加入嵌套关联

例如,具有像一个模型空间时:

—————    —————    ————— 
| A | 0..1 ————— * | B | * ————— 1 | C | 
—————    —————    ————— 

这里我加载A的一个实例由一个已知​​的标识符在我的视图中显示,但我想加载B和C作为(B通过:include,C通过:joins)。这可以做到吗?到目前为止,我只使用:include,即。它自然产生两个额外的往返(1.,通过id获取A,2.获取关联的Bs,3.获取关联的Cs)。

回答

0

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

A.includes(:b).joins(b: :c).find(params[:id])