Joe*_*tti 1 activerecord ruby-on-rails
我试图在Rails中创建一个有点复杂的关系,并且在找到最佳方法时遇到一些麻烦.我有一个用户表,其中每个用户充当教师和学生.我想有一个has_many"学生"(也只是用户)和一个has_many"老师"(也只是用户).我不想做任何子类或单表继承.我想在用户之间想要两个不同的many_to_many.做这个的最好方式是什么?这是一个坏主意吗?有更好的解决方案吗?
您应该能够设置任务模型并像使用任何其他多对多关系一样使用它:
class User < ActiveRecord::Base
has_many :student_teacher_assignments, :class_name => "StudentTeacherAssignment", :foreign_key => "student_id"
has_many :teachers, :through => :student_teacher_assignments
has_many :teacher_student_assignments, :class_name => "StudentTeacherAssignment", :foreign_key => "teacher_id"
has_many :students, :through => :teacher_student_assignments
end
class StudentTeacherAssignment < ActiveRecord::Base
belongs_to :student, :class_name => "User"
belongs_to :teacher, :class_name => "User"
end
Run Code Online (Sandbox Code Playgroud)
我会将赋值的名称更改为更不相似且更有意义,但概念应该保持不变
| 归档时间: |
|
| 查看次数: |
848 次 |
| 最近记录: |