我有一個頁面需要很長時間才能渲染出來。一半的時間(3秒)花費在一個具有一堆急切加載的關聯的.find調用上。我實際需要的是每種情況下關聯記錄的數量,以顯示在表格中:我不需要實際的記錄本身。有沒有辦法只是急於加載計數?這裏有一個簡單的例子:Rails - 急於加載相關記錄的數量,但不是記錄本身
@subjects = Subject.find(:all, :include => [:questions])
在我的表,每行(即每個科目)我只顯示主題字段的值和每個主題相關的問題的數量。我可以優化上述查找電話以適應這些要求嗎?
我想過使用group字段,但我的完整調用包含幾個不同的關聯,包含一些二階關聯,所以我不認爲group by會起作用。
@subjects = Subject.find(:all, :include => [{:questions => :tags}, {:quizzes => :tags}], :order => "subjects.name")
:標記在這種情況下是通過標記的二階關聯。如果不清楚發生了什麼,這是我的協會。
Subject
has_many :questions
has_many :quizzes
Question
belongs_to :subject
has_many :taggings
has_many :tags, :through => :taggings
Quiz
belongs_to :subject
has_many :taggings
has_many :tags, :through => :taggings
感謝您的任何意見 - 最大
由於地板 - 這是不是完全是我要求的,但。我希望主題的所有領域和每個主題的相關問題的數量。這只是列出了所有主題彙總在一起的相關問題的總數(與所有問題都有一個主題的問題中的計數(*)相同)。 – 2010-05-13 08:50:12
完全沒有問題,它會返回已獲得主題的問題的計數(在這種情況下實際情況相同,但可以將其與計數標籤一起使用) – fl00r 2010-05-13 10:02:52