Я откладываю вопрос «использовать или не использовать ИППП?» вопрос и предполагая, что у вас есть причина.
Конечно, вам понадобится столбец id, например, Teacher_id.
Я собираюсь включить в свой пример явные имена классов, потому что знаю, что это работает, но, вероятно, они мне нужны только потому, что мои модели имеют пространство имен, поэтому они, вероятно, излишни для вас.
class Teacher < User
has_many :students, :class_name => 'Student', :foreign_key => 'teacher_id'
end
class Student < User
belongs_to :teacher, :class_name => 'Teacher', :foreign_key => 'teacher_id'
end
И это должно сделать это --- черт. Это сделало бы это, за исключением того, что я пропустил многие ко многим.
Так что я бы попробовал HABTM, но, признаюсь, я никогда не делал этого с STI.
Начните с этой миграции, чтобы создать таблицу соединений.
class CreateStudentsAndTeachers < ActiveRecord::Migration
def change
create_table :students_teachers do |t|
t.belongs_to :student
t.belongs_to :teacher
end
end
end
И тогда это должно работать (и опять же, вам может не понадобиться указанное имя класса)
class Teacher < User
has_and_belongs_to_many :students, :class_name => 'Student'
end
class Student < User
has_and_belongs_to_many :teachers, :class_name => 'Teacher'
end
person
elc
schedule
27.03.2014
User
, а затемTeacher#belongs_to :user
иStudent#belongs_to :user
- person Marian Theisen   schedule 27.03.2014