ActiveRecord包含

我使用以下模型制作了锻炼应用程序:

用户
常规
升降机
演习
相关信息

例程属于用户
例行程序有许多升降机(这是运动和常规之间的联接)

电梯属于运动
信息(套)属于电梯

我正在深入研究ActiveRecord查询,并特别包括处理我遇到的n + 1问题。 当我展示整个例程时,显示:

例程名称
用户名
每个电梯的练习名称
每个电梯的设置

如果我想减少查询,我可以简单地加载如下所示的所有内容:
a = Routine.includes(:user,:lift,:exercise,:infos)并循环遍历所有这些以找到我想要的东西?

或者我必须打破它更多说:
a = Routine.includes(:user,:lift)
b = Lift.includes(:exercise,:infos)
为了缩小我的查询量。

如果这个问题不够明确,请告诉我。

像下面这样的东西应该工作。 Routine.includes(:user, {:lifts => [:exercise, :infos]})