2

親、学生、家庭教師の 3 つの基本的なユーザー タイプを持つ自己参照型のユーザー クラスを作成しようとしています。生徒は保護者に属し、チューターに属することもできます。もちろん、私が書いたように、レールは生徒を持つ親だけを認識します。User.students は、ユーザーが家庭教師の場合は常に空を返しますが、ユーザーが親の場合は機能します。何か案は?

class User < ActiveRecord::Base
# Sets up the tutor has_many students assocation
has_many :tutees, :foreign_key=>"tutor_id",
                :class_name=>"Relationship"
has_many :students, :through=>:tutees

# Sets up the student has_many tutors association
has_many :mentors, :foreign_key=>"student_id",
                 :class_name=>"Relationship"
has_many :tutors, :through=>:mentors

# Sets up the parent has_many students assocation
has_many :children, :foreign_key=>"parent_id",
                  :class_name=>"Relationship"
has_many :students, :through=>:children

# Sets up the student has_many parents 
has_many :mommies, :foreign_key=>"student_id",
                 :class_name=>"Relationship"
has_many :parents, :through=>:mommies

リレーションシップ クラス:

class Relationship < ActiveRecord::Base
 belongs_to :tutor, :class_name=>"User"
 belongs_to :student, :class_name=>"User"
 belongs_to :parent, :class_name=>"User"
end

セクション (保護者、生徒、チューター) もそれぞれ独自のクラスです。基本的なユーザー情報は User クラスにあり、チューターに固有のデータは Tutor クラスにあります。

4

1 に答える 1