次のモデルがあるとします
Course has_many :students
Course has_many :lectures
Lecture has_many :topics
私が行った場合:
courses = Course.find(:all, :includes => [:students, {:lectures => :topics}])
すべてのコース、学生、講義、およびトピックを取得します。
特定の学生がいるコースのみを取得したいのですが、それらのコースのそれぞれについて、特定の講義のみを取得したいのですが、それらの講義のすべてのトピックを取得したいと考えています。
たとえば、'John' という名前の学生のすべてのコースを取得したいとしますが、これらのコースのそれぞれについて最新の 2 つのレクチャーと、それら 2 つのレクチャーのすべてのトピックのみを取得します。
これらのフィルターを上記の元のクエリに適用する方法がわかりません。
このようなクエリを実行する方法についてのガイダンスがあれば幸いです。