0

これからのフォローアップの質問です。

これは、教師と生徒の関係を築くための私の現在の設定です。

ユーザーモデル

  has_many :teacher_links, :foreign_key => :student_id, :dependent => :destroy, :class_name => "TeacherStudentLink"
  has_many :student_links, :foreign_key => :teacher_id, :dependent => :destroy, :class_name => "TeacherStudentLink"
  has_many :students, :through => :student_links
  has_many :teachers, :through => :teacher_links

TeacherStudentLinkモデル

class TeacherStudentLink < ActiveRecord::Base
  attr_accessible :user_id, :student_id, :teacher_id

  belongs_to :user
  belongs_to :student, :class_name => "User"
  belongs_to :teacher, :class_name => "User"
end

Teacher_student_linksテーブルにはuser、student、teacherの3つの列があるため、私には扱いにくいようです。ユーザーは多くの教師を持つことができ、また多くの学生を持つことができます。先生の列がなく、「ユーザー」が「先生」のふりをしているだけなら、すべてが完璧に機能します。この問題を修正する方法はありますか?

4

1 に答える 1

1

cheeseweaselがコメントで言ったこと、あなたのリンクはuser_idを持つべきではありません

class TeacherStudentLink < ActiveRecord::Base
  attr_accessible :student_id, :teacher_id

  belongs_to :student, :class_name => "User", :foreign_key => :student_id
  belongs_to :teacher, :class_name => "User", :foreign_key => :teacher_id
end
  • 所属_toforeign_keyは、現在のテーブルの外部キーを指定します(リンク)
  • has_many external_keyは、他のテーブルの外部キーを指定します(リンク)
于 2013-01-22T03:04:30.260 に答える