6 Stimmen

Mehrere Assoziationen zum selben Modell

Ich habe zwei Klassen, die ich wie folgt spezifizieren möchte:

class Club < ActiveRecord::Base
  belongs_to :president, :class_name => "Person", :foreign_key => "president_id"
  belongs_to :vice_president, 
             :class_name => "Person",
             :foreign_key => "vice_president_id"
end

class Person < ActiveRecord::Base
  has_one :club, :conditions => 
  ['president_id = ? OR vice_president_id = ?', '#{self.id}', '#{self.id}']
end

Dies funktioniert nicht und führt zu einer Fehlermeldung, wenn ich versuche, die Vereinszugehörigkeit aus dem Personenobjekt zu ermitteln. Der Fehler liegt darin, dass nach person_id in der Vereinstabelle gesucht wird, wenn ich mir die SQL ansehe. Ich kann das Problem umgehen, indem ich mehrere has_one-Verknüpfungen deklariere, aber ich habe das Gefühl, dass dies nicht der richtige Weg ist.

Eine Person kann nur in einem Club Präsident oder Vizepräsident sein.

Wenn jemand in der Lage ist, einen kleinen Ratschlag zu diesem Thema zu geben, wäre ich sehr dankbar dafür.

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