私は次のモデルを持っています:
class FavoriteDirectorSet < ActiveRecord::Base
has_many :links
has_many :directors, through: :links
end
class Link < ActiveRecord::Base
belongs_to :favorite_director_set
belongs_to :director
end
class Director < ActiveRecord::Base
has_many :links
has_many :favorite_director_sets, through: :links
has_many :movies
end
class Movie < ActiveRecord::Base
belongs_to :director
end
スコープをチェーン化してクエリを作成するようになりましたが、これをどのように分解するかがわかりません。特定のFavoriteDirectorSetIDに一致するMoviesのActiveRecordRelationオブジェクトを作成するにはどうすればよいですか?
アップデート
2つのソリューションが機能しています(「favourite_director」はfdと省略されます)。
1)@rubymanオプション1:
fd_sets = FDSet.find(:fd_set_id)
res = Movie.where('director_id IN (?)', fd_sets.directors.map(&:id))
2)@rubymanオプション2:
res = Movie.joins(:director=>[:links=>:fd_set]).
where("fd_sets.id = ?", :fd_set_id)