2013-11-20 96 views
0

我已与下列型号锻炼应用:的ActiveRecord包括

用户
常规
电梯
练习
相关信息

的例程属于用户
一个例行程序的许多升降机(这是运动和日常之间的联系)

甲电梯属于一种运动
的相关信息(套)属于电梯

我挖掘到的ActiveRecord查询并且具体地包括对我具有n + 1个的工作问题。当我显示整个常规表示:

的程序名称
的用户名
演习名称为每部电梯
的设定每个解除

如果我想用更少的查询可以我只是加载一切,如下所示:
a = Routine.includes(:user,:lifts,:exercises,:infos)并遍历所有这些以找到我想要的东西?

还是我打破它,更说:
A = Routine.includes(:用户:升降机)
B = Lift.includes(:锻炼:相关信息)
为了缩小我有的查询量。

如果这个问题不够清楚,请让我知道。

回答

0

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

+0

你能解释这是什么吗?对我来说,它看起来会加载所有例程,相关用户以及每部电梯的练习和信息。 – user2184718

+0

我解释的方式太多了,但网络上有很多信息。你应该阅读这个http://guides.rubyonrails.org/active_record_querying.html –