私は、学校、コース、学生、教師からなるWebアプリケーションを作成しています。Railsの関連付け - さまざまな種類のユーザーに関連付けを設定するにはどうすればよいですか?
学校には多くのコースがあり、コースには1人の教師と多くの学生がいます。
私は、1人のユーザーが1つのコースの先生になることができますが、別のコース(または別の学校のコースに参加している学生または教員)の生徒になる可能性があります。私はすべてのユーザーを1か所で追跡したいので、教師用のモデルと学生向けのモデルを作成したくありません。どのユーザーがコースに参加しているのかを示す登録テーブルがあります。
私は次のような何かをしたいと思います:
class School < ActiveRecord::Base
has_many :courses
has_many :students :through enrollments
has_many :teachers :through courses
end
class Course < ActiveRecord::Base
has_one :teacher
belongs_to :school
has_many :students :through enrollments
end
class User < ActiveRecord::Base
has_many :courses
has_many :schools
end
しかし、私は唯一のユーザーテーブルではなく二つの別々の生徒と教師のテーブルを持っている場合、これは動作しません。
代わりに、私はこの仕事をするために私のモデルとの関連付けを設定するにはどうすればよい
class School < ActiveRecord::Base
has_many :users [that are teachers]
has_many :users :through enrollments [that are students]
end
ような何かをしなければならないでしょうか?
ありがとうございました。
ありがとう、これは非常に役に立ちます。 – Deonomo
'class_name'は実際に':through'関連で無視されます。 'primary_key'と' foreign_key'と一緒に – Azolo