2011-01-19 16 views
10

¿Es posible cargar siempre una asociación cuando se carga una entidad? Por ejemploAsociación de carga siempre con la entidad

class Book 
    has_many :chapters 
end 

class Chapters 
    belongs_to :book 
end 

book = Book.find_by_title('Moby Dick') 

Sé que puede cargar con impaciencia en la llamada para encontrar, por ejemplo. book = Book.find_by_title('Moby Dick', :include => :chapters) pero en este caso sé que cada vez que encuentro un libro siempre quiero que los capítulos estén ansiosos de cargarse sin necesidad de recordar el parámetro :include =>.

Respuesta

24

Puede incluir un "default_scope" en su modelo.

para los carriles 4:

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

para los carriles 3:

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

para los carriles 2:

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

Usted eran más rápidos que yo :) –

+0

dulce, agradable y sencilla. –

+10

y para Rails 4: default_scope {includes (: chapters)} – d4rky

Cuestiones relacionadas