ActiveRecord包括

时间:2013-11-20 22:25:18

标签: ruby-on-rails ruby database performance activerecord

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

用户
例行的 电梯
演习
的相关信息

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

电梯属于练习
信息(套)属于升降机

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

例程名称
用户名称
每个升降机的运动名称
每个升降机的套件

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

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

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

1 个答案:

答案 0 :(得分:0)

以下内容应该有效。 Routine.includes(:user, {:lifts => [:exercise, :infos]})