2016-07-12 27 views
0

In meiner App möchte ich einen benannten Bereich für Abfragen in der App erstellen, die Daten aus einer Verbindung has_many erhält. Ich laufe in Probleme, wenn an anderer Stelle I: am selben Verein sind, was zu einer MySQL-FehlerWie Alias-Joins in Schienen Alias ​​2.3

Mysql::Error: Not unique table/alias: 'foo' 

Hier ist, was meine benannte Umfang wie folgt aussieht:

named_scope :single_foo, :joins => :foo, :group => "foo.blip_id", :having => "count(foo.blip_id) = 1" 

Wie kann ich meine aktualisieren: beitritt Aussage zu machen ein Alias ​​für foo, so dass ich in Abfragen wie unten keine eindeutigen Tabellenfehler habe?

Blip.single_foo.find(:all, :include => [ :foo ], :conditions => (......)) 

Auch Bonuspunkte, wenn jemand kann mich führen zu einem einfacheren Namen Umfang, ich will Blips nur wählen, die eine einzelne Foo haben.

Antwort

0

Es ist kein Alias ​​erforderlich. Das: include => [: foo] kann aus der späteren Abfrage entfernt werden, da es bereits im Aufruf von: joins des single_foo genannten Bereichs enthalten ist. Also alles, was ich brauchte, um meine Anfrage zu sein, war diese:

Blip.single_foo.find(:all, :conditions => (......))