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.