2016-06-19 7 views
0

Ich habe eine Klasse Benutzer und Unterklassen Student und Lehrer (mit STI).Erstellen von Zuordnungen zwischen Unterklassen (STI)

Ich möchte eine has_and_belongs_to_many Zuordnung zwischen Student und Lehrer erstellen. Bitte lassen Sie mich wissen, wie ich eine Join-Tabelle erstellen kann, um diese Verknüpfung abzuschließen.

Danke!

Antwort

0

Migration:

class CreateStudentsTeachersJoinTable < ActiveRecord::Migration 
    def change 
    create_table :students_teachers, id: false do |t| 
     t.integer :student_id 
     t.integer :teacher_id 
    end 
    end 
end 

Lehrer Modell:

class Teacher < User 
    has_and_belongs_to_many :students, join_table: :students_teachers 
end 

Studentenmodell:

class Student < User 
    has_and_belongs_to_many :teachers, join_table: :students_teachers 
end 
+0

Einfach nur neugierig, Schüler, Studierende und Lehrer ihre eigenen Tabellen nicht Recht haben? Ich glaube, sie werden nur Einträge in der Tabelle "Benutzer" haben? Woher kommen also student_id und teacher_id? – user1175969

+1

Ja, einzelne Tabelle "Benutzer". Standardmäßig sind die Namen von Fremdschlüsseln in der Join-Tabelle "habtm" Klassennamen in snake-case plus "_id". Sie können auch mit den Optionen "foreign_key" und "association_foreign_key" angegeben werden. –

+0

Bedeutet das, dass student_id tatsächlich die user_id in der Tabelle "users" ist? – user1175969

Verwandte Themen