带有has_and_belongs_to_many的Rails named_scope

我有3个表 – 电影,电影_根(连接2个表)和流派。 在模型film.rb中 – has_and_belongs_to_many:流派在模型genre.rb中 – has_and_belongs_to_many:电影

那么,我怎么能写这个sql代码:

SELECT * FROM genres INNER JOIN films_genres ON genres .id = films_genres .genre_id WHERE( films_genres .film_id = 1)

使用模型film.rb中的named_scope来显示所有电影滚动类型?

 class Model < ActiveRecord::Base named_scope :by_genre, lambda { |*genres| { :include => :genres, :conditions => [ "genres.id IN (?)", genres.map(&:id) ] } } end Film.by_genre(western, sci_fi).find(:all) 

为了指定多个类型作为命名范围的一部分,我使这个稍微复杂一点。 希望能帮助到你。

在英语中,你想从数据库中提取什么? 要检索特定电影的类型,请执行以下操作:

 @genres = @film.genres 

第一章! 我尝试从连接到电影的类型的db列表中汇集。 我的问题是:如何在film.rb模型中使用named_scome来做到这一点? 我需要这个用于胶片滤镜。 链接例如: http : //clearcove.ca/blog/2008/12/recipe-restful-search-for-rails/#more-218

数据库:

电影:id name descr year

films_genres:id film_id genre_id

类型:id名称