我對於活躍記錄中熱切加載的機制有點困惑。比方說,一個Book
模型有很多Pages
我取使用此查詢一本書:幫我理解Rails急切加載
@book = Book.find book_id, :include => :pages
現在這個地方我很困惑。我的理解是,@book.pages
已經加載,不會執行另一個查詢。但是,假設我想找到特定頁面,我該怎麼辦?
@book.pages.find page_id
# OR...
@book.pages.to_ary.find{|p| p.id == page_id}
我說得對不對在想,第一個例子將執行另一個查詢,因此使預先加載沒有意義的,或者是活動記錄足夠聰明的知道,它並不需要做另一個查詢?
另外,我的第二個問題,是否有一種說法,在某些情況下,在數據庫上進行加載更爲緊張,有時多個小型查詢會更有效,即單個大型查詢?
感謝您的想法。