导轨有很多,属于相同型号的两次之间

问题描述:

我想知道如何做某事如果有人知道我会很高兴听到。我有以下型号导轨有很多,属于相同型号的两次之间

User 
Usertype 
Course 

我有两种类型的用户 - 学生和老师。 我想是有两个表

CourseTeacher - course_id, teacher_id 
CourseStudent - course_id, student_id 

我的用户模型usertype_id列。所以我想知道如何在这种情况下使用has_many_and_belongs_to,因为一切都取决于用户模型中的usertype_id列。

我认为类的继承是模拟域逻辑清晰的方法:

class User < ActiveRecord::Base 
end 

class Student < User 
end 

class Teacher < User 
end 

则该表将有一个idtype列,极大地简化了你要完成的任务。阅读API文档,了解详情:Single Table Inheritance

如果你没有重构能力,你可以尝试使用这种方法:

,而不是2个表创建一个:

class CoursesUsers 
    belongs_to :course 
    belongs_to :user 
end 

而在用户模型中决定自己的逻辑(对我来说,看起来像多态)