Rails named_scopes mit Joins

Ich versuche, ein named_scope zu erstellen, das einen Join verwendet, aber obwohl die generierte SQL richtig aussieht, ist das Ergebnis Müll. Zum Beispiel:

class Clip < ActiveRecord::Base      
  named_scope :visible, {
    :joins => "INNER JOIN series ON series.id = clips.owner_id INNER JOIN shows on shows.id = series.show_id", 
    :conditions=>"shows.visible = 1 AND clips.owner_type = 'Series' "
  }

(Ein Clip gehört zu einer Serie, eine Serie gehört zu einer Show, eine Show kann sichtbar oder unsichtbar sein).

Clip.all macht:

SELECT * FROM `clips` 

Clip.visible.all macht:

SELECT * FROM `clips` INNER JOIN series ON series.id = clips.owner_id INNER JOIN shows on shows.id = series.show_id WHERE (shows.visible = 1 AND clips.owner_type = 'Series' ) 

Das sieht okay aus. Das resultierende Array von Clip-Modellen enthält jedoch einen Clip mit einer ID, die nicht in der Datenbank enthalten ist. Stattdessen wird eine Show-ID abgerufen. Wo gehe ich falsch?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage