2012-02-25 34 views
6

Trong Ruby on Rails Tôi có trường học có nhiều trẻ em. Trẻ em có nhiều hoạt động. Và Hoạt động có một activity_types. Tôi cần giúp đỡ làm tổ bao gồm. Trong Bộ điều khiển dành cho trẻ em của tôi. Tôi có ... cái này hoạt động.Nested Bao gồm trong Ruby on Rails 3

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

Nhưng tôi cũng muốn nhận được: activity_type từ các hoạt động từ trẻ em. Tôi cố gắng này

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

Nhưng điều đó không làm việc

Trả lời

9

Đừng pluralize activity_type.

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

+0

Xin cảm ơn bạn. Tại sao nó hoạt động? Logic đằng sau điều đó là gì? – Johnston

+0

Tôi giả sử bạn đã gõ sai chính tả khi bạn viết hoạt động có một activity_types (số nhiều) vì sau này bạn đã viết rằng bạn muốn lấy activity_type từ một hoạt động. 'children.includes (: activities =>: activity_type)' có nghĩa là bao gồm tất cả các hoạt động cho mỗi trẻ và bao gồm mỗi activity_type cho mỗi hoạt động. Nếu bạn sử dụng số nhiều (activity_types) thì giả định rằng các hoạt động có nhiều activity_types và không chỉ một activity_types. – James

Các vấn đề liên quan