我有一部电影模特
class Film < ActiveRecord::Base
has_many :film_genres
has_many :genres, through: :film_genres
end
流派模型
class Genre < ActiveRecord::Base
has_many :film_genres
has_many :films, through: :film_genres
end
然后我有我的filmGenre模型
class FilmGenre < ActiveRecord::Base
belongs_to :film
belongs_to :genre
end
我试图在特定类型的控制器中获得一个电影列表,但似乎无法加入工作。
def show
@films = ## need a join / select here to fetch all films with Genre.id of 4
end
答案 0 :(得分:2)
使用includes
加入流派表,然后您可以在where
条件中引用它:
@films = Film.includes(:genres).where(genres: {id: 4})
或者,从Genre
模型开始,可能更容易获得流派4的所有电影:
@films = Genre.find(4).films