4 Stimmen

Zweideutige Spalte in der MySQL/Rails-Suchmethode

Ich erhalte folgende Fehlermeldung

Mysql::Fehler: Spalte 'id' in Feldliste ist zweideutig

wenn Sie eine Suchmethode wie diese verwenden: self.prompts.find(:all, :select => 'id')

Die Modelle werden über eine has_many :through-Assoziation aufgerufen, so dass sich MySQL beschwert, dass es mehrere 'id'-Spalten gibt, da alle 3 verwendeten Tabellen eine 'id'-Spalte haben.

Ich habe nachgeschaut und verstehe, was auf der SQL-Seite schief läuft, weiß aber nicht, wie man es in der ActiveRecord-Suchmethode beheben kann, und ich habe kein Vertrauen in meine SQL-Fähigkeiten, um meine eigene SQL-Abfrage zu erstellen. Gibt es eine Möglichkeit, die Find-Methode in etwas, das gut spielen wird zu massieren?

bearbeiten

Hier ist der entsprechende Actor Model Code:

class Actor < ActiveRecord::Base
  has_many :acts, :dependent => :destroy
  has_many :decisions, :through => :acts, :order => 'created_at'
  has_many :prompts, :through => :decisions, :order => 'id'

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X