2016-05-17 27 views
0

http://www.trailerpuppy.com/trailers/popularのRails:複雑なActive Recordの照会 - 注文子レコード兄弟

作品belongs_toのトレーラーの数に基づいて。ムービーhas_many予告編とhas_many通知。私はほとんどの通知に映画から最新トレーラーを返すようにしたい

trailer.rb

def self.most_reminders_set(from_date, until_date, number_to_return) 
    Trailer.joins(:movie => :notifications). 
      where("movies.release_date > ?", from_date). 
      where("movies.release_date < ?", until_date). 
      select('trailers.*, COUNT(notifications.id) AS notifications_count'). 
      joins(:movie).group('trailers.id'). 
      order('notifications_count DESC').take(number_to_return).first(number_to_return) 
end 

だから基本的に、この方法は、私は時間枠を設定することができますし、それはトップXトレーラー(玉葉を返します。映画には最も多くの通知があります)。

この問題は、同じ映画の複数の予告編を取得していることです。 1つの映画館で1つの予告編を返すだけです。

質問をどこに追加するかわかりません。

+0

あなたが 'ここで、(映画:{RELEASE_DATE:[from_date..until_date]})行うことができます'少しそれをクリーンアップします。代わりに 'movies.id'をグループ化しようとしましたか? – max

答えて

関連する問題