2012-02-25 26 views
6

En Ruby on Rails tengo una escuela que tiene muchos niños. Niños que tiene muchas actividades. Y la actividad que tiene un activity_types. Necesito ayuda para anidar. En mi controlador de niños. Tengo esto ... que funciona.Anidado Incluye en Ruby on Rails 3

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

Pero también quiero obtener el: activity_type de las actividades de los niños. He intentado esto

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

Pero eso no funcionó

Respuesta

9

No pluralizar activity_type.

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

+0

Wow gracias. ¿Por qué funciona eso? ¿Cuál es la lógica detrás de eso? – Johnston

+0

Supongo que cometió un error tipográfico cuando escribió que la actividad tiene un tipo_actividad (plural) porque más tarde escribió que quería obtener el tipo_actividad de una actividad. 'children.includes (: activities =>: activity_type)' significa que incluye todas las actividades para cada niño e incluye cada activity_type para cada actividad. Si usa el plural (tipo_actividad), eso supone que las actividades tienen muchos tipos_actividad y no solo uno. – James