我想知道是否以及如何在关联中实现混合:include
和:joins
以避免在从数据库中检索对象时发生不必要的往返。
例如,当有一个模型空间时:
————— ————— —————
| A | 0..1 ————— * | B | * ————— 1 | C |
————— ————— —————
这里我正在通过已知标识符加载A的实例以显示在我的视图中,但我也想加载B和C(B通过:include
,C通过:joins
)。可以这样做吗?到目前为止,我只使用:include
,即。
A.find params[:id], :include => [ { :b => :c } ]
自然产生两个额外的往返(1.,通过id获取A,2。获取相关的Bs,3。获取相关的Cs)。
答案 0 :(得分:0)
由于您使用的是Rails 3,因此您可以将这些方法链接起来。
A.includes(:b).joins(b: :c).find(params[:id])