2017-02-22 12 views
1

私のプロジェクトでは2つのモデルの間に多対多の関連がありますが、それらの間の関連のタイプを指定したいと思います。多対多の関連での関係のタイプ

私たちはTeachers et Classroomsを持っています。各Teacherには多くの教室があり、各Classroomには多くのTeachersがあります。Troughを使用したい場合、Teachingを作成することができます。

教師は1つの教室に数学を教えていて、同じ教師が別の教室に物理学を教えているのですが、そのようなことを行う方法はありますか?一緒に行く最善の方法?

編集: 私はこの方法を試してみましたが、それが最善の方法であれば、私は知らない。

Class Teacher < ActiveRecord::Base 
    has_many :classrooms, through: :teachings 
    end 

    Class Teaching < ActiveRecord::Base 
    belongs_to :teachers 
    belongs_to :classrooms 
    end 

    Class Classroom < ActiveRecord::Base 
    has_many :teachers, through: :teachings 
    end 

私の考えではなく、教育を使用するのである:数学、:私はohterモデル(EXを使用しますPhysic ..)ティーチングモデル から継承していますが、ティーチング協会でタイプを追加できますか(関連テーブルのSTIを使用していますか?)どのように私はそれを実装することができますか?それとも、単にティーチングにアトリビュートを追加し、STIを使用する代わりに手動でアトリビュートを設定しますか?それを行う最善の方法は何ですか?

答えて

0

あなたはサブジェクトと呼ばれる別のテーブルを使用できるように聞こえます。これにより、どの教師(teacher_id)がどの教室(classroom_id)にどの教科を教えるかを示すレポートが可能になります。

+0

私はよくあなたの助言を理解していない –