2013-01-15 3 views
9

Ich möchte nur eine kleine Join-Tabelle erstellen und eventuell zusätzliche Informationen zu diesem Join speichern (weshalb ich HABTM nicht verwende). Von den Schienen Dokumentation von Verbänden habe ich die folgenden Modelle erstellt:has_many: through NameError: nicht initialisierte Konstante

class Physician < ActiveRecord::Base 
    has_many :appointments 
    has_many :patients, :through => :appointments 
end 

class Patient < ActiveRecord::Base 
    has_many :appointments 
    has_many :physicians, :through => :appointments 
end 

class Appointment < ActiveRecord::Base 
    belongs_to :physicians 
    belongs_to :patients 
end 

mein Schema wie folgt aussieht:

ActiveRecord::Schema.define(:version => 20130115211859) do 

    create_table "appointments", :force => true do |t| 
    t.datetime "date" 
    t.datetime "created_at", :null => false 
    t.datetime "updated_at", :null => false 
    t.integer "patient_id" 
    t.integer "physician_id" 
    end 

    create_table "patients", :force => true do |t| 
    t.string "name" 
    t.datetime "created_at", :null => false 
    t.datetime "updated_at", :null => false 
    end 

    create_table "physicians", :force => true do |t| 
    t.string "name" 
    t.datetime "created_at", :null => false 
    t.datetime "updated_at", :null => false 
    end 

end 

Wenn ich in der Konsole bin und ich eine Arzt und Patient Beispiel:

@patient = Patient.create! 
@physician = Physician.create! 

Und versuchen, einen zu dem anderen

@physician.patients << @patient 
zu assoziieren

ich

NameError: uninitialized constant Physician::Patients 

Fragen zu diesem Beispiel wurden gebeten, vor dem aber keine hat mein Szenario befassen. Irgendwelche Ideen?

Danke, Neil, Schienen Neuling.

+0

Mögliche doppelte: http://stackoverflow.com/questions/4415446/adding-and-removing-from -a-hat-viele-durch-Beziehung –

Antwort

17

Die belongs_to Anrufe in Ihrem Appointment Modell eine einzigartige Form annehmen sollte, kein Plural:

class Appointment < ActiveRecord::Base 
    belongs_to :physician 
    belongs_to :patient 
end 
+0

Danke Kumpel. Sehr geschätzt! – Neil