2012-02-25 14 views
6

In Ruby on Rails ho School con molti figli. I bambini che hanno molte attività. E attività che ha un tipo_attività. Ho bisogno di aiuto per l'annidamento. Nel mio controller per bambini. Ho questo ... che funziona.Incluso in Ruby on Rails 3

s = School.find(params[:school_id]) 
@school = s 
@children = s.children.includes(:activities).all 

Ma voglio anche ottenere il: activity_type dalle attività dei bambini. Ho provato questo

s = School.find(params[:school_id]) 
@school = s 
@children = s.children.includes(:activities => :activity_types).all 

Ma che non ha funzionato

risposta

9

Non plurale activity_type.

s.children.includes(:activities => :activity_type).all

+0

Wow grazie. Perché funziona? Qual è la logica dietro a questo? – Johnston

+0

Suppongo che tu abbia commesso un errore quando hai scritto un'attività ha un'attività_type (plurale) perché in seguito hai scritto che volevi ottenere l'activity_type da un'attività. 'children.includes (: activities =>: activity_type)' significa includere tutte le attività per ogni bambino e includere ogni tipo_attività per ogni attività. Se si utilizza il plurale (activity_types), allora si presume che le attività abbiano molti tipi_attività e non solo uno. – James