2016-05-17 35 views
0

http://www.trailerpuppy.com/trailers/popularRails的:複雜的活動記錄查詢 - 訂購子記錄基於兄弟姐妹

拖車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拖車(衛生組織電影的通知最多)。

與此相關的問題是,我正在爲同一部電影獲取多個預告片。我只想每個唯一的movie_id返回一個預告片。

不知道在我的查詢中添加的位置。

+0

你可以做'在哪裏(電影:{RELEASE_DATE:[from_date..until_date]})'把它清理乾淨咯。你有沒有嘗試在'movies.id'上進行分組? – max

回答