2012-02-24 91 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