0

나는 어떻게하면 좋을지 궁금합니다. 누군가가 기뻐할 것이라는 것을 알고 있다면. 다음 모델이 있습니다레일이 많고 동일한 모델로 두 번 사이에 속합니다.

User 
Usertype 
Course 

나는 학생과 교사라는 두 가지 유형의 사용자가 있습니다. 내가 갖고 싶은 두 개의 테이블

CourseTeacher - course_id, teacher_id 
CourseStudent - course_id, student_id 

내 사용자 모델은 usertype_id 열이 있습니다. 그래서 모든 경우에 usertype_id 사용자 모델의 열에 의존하기 때문에이 경우 has_many_and_belongs_to을 사용하는 것이 궁금합니다.

class User < ActiveRecord::Base 
end 

class Student < User 
end 

class Teacher < User 
end 

그런 다음 테이블이 크게 당신이 달성하기 위해 노력하고 무엇을 단순화 idtype 열 것 :

답변

1

나는 클래스 상속 도메인 로직을 모델링하는 청소기 방법입니다 생각합니다. 당신이 리팩토링 할 수있는 능력이없는 경우 Single Table Inheritance

0

,이 방법을 사용해 볼 수 있습니다 :

class CoursesUsers 
    belongs_to :course 
    belongs_to :user 
end 

그리고 :

대신이 개 테이블을 만들 더 알아 보려면 API 문서를 읽기 사용자 모델 내부에서 논리를 결정하십시오 (나에게 다형성 인 것처럼 보입니다)