2011-01-19 3 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」を含めることができます。 Railsの2については

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

:Railsの4のために

​​

のRails 3の場合

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

あなたは:)私より速く –

+0

甘い、素敵でシンプルでした。 –

+10

とRails 4の場合:default_scope {includes(:chapters)} – d4rky

関連する問題