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つの予告編を返すだけです。
質問をどこに追加するかわかりません。
あなたが 'ここで、(映画:{RELEASE_DATE:[from_date..until_date]})行うことができます'少しそれをクリーンアップします。代わりに 'movies.id'をグループ化しようとしましたか? – max