2011-01-19 80 views
10

实体加载时是否可以总是急于加载关联?例如总是渴望加载与实体的关联

class Book 
    has_many :chapters 
end 

class Chapters 
    belongs_to :book 
end 

book = Book.find_by_title('Moby Dick') 

我知道,你可以在调用急于负载找到即。 book = Book.find_by_title('Moby Dick', :include => :chapters)但在这种情况下,我知道任何时候我找到一本书时,我总是希望这些章节不需要记住:include =>参数。

回答

24

您可以在模型中包含“default_scope”。

对于轨道4,5:

​​

对于Rails的3:

class Book 
    has_many :chapters 
    default_scope includes(:chapters) 
end 

对于梁2:

class Book 
    has_many :chapters 
    default_scope :include => :chapters 
end 
+0

你是比我快:) – 2011-01-19 03:07:00