У меня есть следующие модели:
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
Я начал строить запросы, связывая области вместе, но я не понимаю, как это разбить. Как создать объект Active Record Relation для фильмов, которые соответствуют заданному идентификатору FavoriteDirectorSet?
ОБНОВИТЬ
У меня есть два рабочих решения («любимый_директор», сокращенно 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)