我使用以下模型制作了锻炼应用程序:
用户
例行的
电梯
演习
的相关信息
例程属于用户
例程有许多升降机(这是运动和常规之间的联接)
电梯属于练习
信息(套)属于升降机
我正在深入研究ActiveRecord查询,具体包括处理我遇到的n + 1问题。当我显示整个例程时,显示:
例程名称
用户名称
每个升降机的运动名称
每个升降机的套件
如果我想减少查询,我可以简单地加载如下所示的所有内容:
a = Routine.includes(:user,:lift,:exercise,:infos)并循环遍历所有这些以找到我想要的东西?
或者我要打破它更多说:
a = Routine.includes(:user,:lift)
b = Lift.includes(:exercise,:infos)
为了减少我的查询量。
如果这个问题不够明确,请告诉我。
答案 0 :(得分:0)
以下内容应该有效。 Routine.includes(:user, {:lifts => [:exercise, :infos]})