2013-06-13 62 views
0

E.g.我有一個叫Book的模型,其中belongs_to模型Shelf與字段:bookcase:number每次導軌是否加載關聯關係

我想知道,如果我打電話給book.shelf.bookcase,然後再給book.shelf.number,Rails實際上是否每次加載相應的shelf?或者它在某處緩存book.shelf?我不應該創建一個新變量shelf = book.shelf並使用shelf.bookcaseshelf.number來代替?

回答

1

Rails會緩存關聯信息,因此您可以在訪問緩存時獲取緩存中的任何內容。它不會每次從數據庫重新加載它。在A Guide to Active Record Associations

book.shelf(true).number 

見3.1:

當你想從數據庫中重新加載,在這種情況下,使用下面的語法有情況。