我想知道如何做某事如果有人知道我会很高兴听到。我有以下型号
User
Usertype
Course
我有两种类型的用户 - 学生和老师。 我想要的是两张桌子
CourseTeacher - course_id, teacher_id
CourseStudent - course_id, student_id
我的用户模型有usertype_id
列。所以我想知道在这种情况下如何使用has_many_and_belongs_to
因为一切都取决于用户模型中的usertype_id
列。
答案 0 :(得分:1)
我认为类继承是一种更简洁的域逻辑建模方法:
class User < ActiveRecord::Base
end
class Student < User
end
class Teacher < User
end
然后该表格会有一个id
和type
列,大大简化了您要完成的工作。阅读API文档以了解更多信息:Single Table Inheritance
答案 1 :(得分:0)
如果您没有重构能力,可以尝试使用这种方法:
而不是2个表创建一个:
class CoursesUsers
belongs_to :course
belongs_to :user
end
并且在用户模型中决定自己的逻辑(对我来说似乎是多态的)