2012-02-25 13 views
6

W Ruby on Rails mam szkołę, która ma wiele dzieci. Dzieci, które mają wiele zajęć. I aktywność, która ma jeden typ aktywności. Potrzebuję pomocy przy zagnieżdżaniu. W moim kontrolerem dla dzieci. Mam to ... co działa.Zagnieżdżony Zawiera Ruby on Rails 3

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

Ale chcę również uzyskać: activity_type z działań od dzieci. Próbowałem to

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

Ale to nie działa

Odpowiedz

9

Nie pluralize activity_type.

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

+0

Wow, dziękuję. Dlaczego to działa? Jaka jest logika tego? – Johnston

+0

Domyślam się, że napisałeś literówkę, gdy pisałeś, że aktywność ma jeden typ aktywności (liczba mnoga), ponieważ później napisałeś, że chciałeś pobrać typ aktywności z działania. 'children.includes (: activities =>: activity_type)' oznacza wszystkie działania dla każdego dziecka i uwzględnia każdy typ aktywności dla każdego działania. Jeśli użyjesz liczby mnogiej (activity_types), to zakłada ona, że ​​działania mają wiele typów aktywności, a nie tylko jeden. – James