我查了其他S.O問題,但我不太明白如何解決問題。Active Record&Rails:錯誤:對於SELECT DISTINCT,ORDER BY表達式必須出現在選擇列表中
預告片belongs_to電影和電影has_many發佈。我上拖車範圍:
:發佈範圍的意圖是讓拖車,其電影至少有一個版本,可能最近25年:
scope :released, -> {
joins(movie: :releases).where("movies.release_date > ?", 25.years.ago)
}
然後我有一個由他們的父母下令拖車另一範圍電影imdb_rating:
scope :top_rated, -> {
where("movies.imdb_rating IS NOT NULL").order("movies.imdb_rating desc")
現在如果我叫Trailer.released.top_rated,問題是,同樣的拖車多次表示,如果它的電影有多個版本。我在幾乎我能想到的每一個地方嘗試添加uniq的,但我得到的錯誤:
ERROR: for SELECT DISTINCT, ORDER BY expressions must appear in select list
我怎麼能顯示每個片長只有一次?
你嘗試採取從像Trailer.released.top_rated.first集合的第一個? –