0

例如,我有一个名为Bookwhich belongs_tomodel Shelfwith fields :bookcaseand的模型:number

我想知道,如果我调用book.shelf.bookcase然后再调用book.shelf.numberRails 是否shelf每次都实际加载相应的?还是它缓存在book.shelf某个地方?我不应该创建一个新变量shelf = book.shelf并使用shelf.bookcaseandshelf.number代替吗?

4

1 回答 1

1

Rails 将缓存关联信息,因此当您访问缓存时,您可以获得缓存中的任何内容。它不会每次都从数据库重新加载它。

在某些情况下,您确实希望从数据库重新加载,在这种情况下,使用以下语法:

book.shelf(true).number

请参阅Active Record 关联指南中的第 3.1 节。

于 2013-06-13T11:23:38.470 回答