2012-02-24 58 views
1

我是新来的Ruby on Rails和我有两个表项目任务时减少SQL查询的数量在Ruby on Rails的3。如何获取相关记录

在我的任务索引视图中,我有一个长的HTML表,其中一列属于项目

现在我注意到Rails使用单独的SQL查询来获取每个项目的名称。

有什么办法可以简化它吗?我想我以前听说过一些技术,但不太清楚它是什么。

感谢您的帮助!

回答

10

在您的初始任务查询中使用includes方法。

例子:

def index 
    @tasks = Task.includes(:project).all 
    ... 
end 
+0

这正是* *什么,我一直在寻找。像一个魅力工程,感谢一堆! – Tintin81 2012-02-24 16:40:34

+0

我觉得我应该提一下,在include()的返回时调用.all并不是必需的,实际上可以被认为是反模式,因为它会在数据迭代时急切加载数据而不是延迟加载。 – fullsailor 2013-02-13 18:56:09