2012-02-25 242 views
6

在Ruby on Rails中,我有許多孩子的學校。有許多活動的兒童。和有一個activity_types的Activity。我需要幫助嵌套包括。在我的孩子控制器。我有這個......這是有效的。在Ruby on Rails中嵌套包含3

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

但我也想從兒童的活動中得到:activity_type。我想這

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

但沒有奏效

回答

9

不要以複數形式activity_type

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

+0

哇謝謝你。爲什麼這個工作?這背後的邏輯是什麼? – Johnston 2012-02-25 20:57:48

+0

我假設你在編寫活動時犯了一個錯字,並且有一個activity_types(複數),因爲你後來寫到你想從活動中獲得activity_type。 'children.includes(:activities =>:activity_type)'表示包含每個孩子的所有活動,並且包括每個活動的每個activity_type。如果你使用複數(activity_types),那麼假設活動有許多activity_types而不只是一個。 – James 2012-02-25 21:03:03