2011-01-19 15 views
10

È possibile caricare sempre un'associazione quando un'entità viene caricata. Ad esempioAssociazione sempre carico con entità

class Book 
    has_many :chapters 
end 

class Chapters 
    belongs_to :book 
end 

book = Book.find_by_title('Moby Dick') 

So che è possibile caricare carico nella chiamata per trovare vale a dire. book = Book.find_by_title('Moby Dick', :include => :chapters) ma in questo caso so che ogni volta che trovo un libro voglio sempre caricare i capitoli senza dover ricordare il parametro :include =>.

risposta

24

È possibile includere un "default_scope" nel modello.

Per Rails 4:

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

Per Rails 3:

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

Per Rails 2:

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

Si erano più veloci di me :) –

+0

dolce, piacevole e semplice. –

+10

e per Rails 4: default_scope {include (: capitoli)} – d4rky

Problemi correlati