在我的 Rails 应用程序中,用户可以创建课程和学校(组)。每次用户创建课程或学校时,他们的 user_id 都会存储在课程或学校的数据库表中,因此用户 has_many :schools 和 :courses 以及学校或课程 belongs_to :user。此外,用户可以通过关系模型使用 has_many 参加课程和加入学校(作为学生或教授)(对于具有 :user_id、school_id 和 :role [string] 的学校的学校组,以及对于课程 student_users(和professor_users)它有一个:user_id、course_id 和:role [string]。我的问题是,在用户模型中,我可以只指定一次:
has_many :schools, :dependent => :destroy
has_many :courses, :dependent => :destroy
has_many :schoolgroups, :dependent => :destroy
has_many :student_users, :dependent => :destroy
has_many :professor_users, :dependent => :destroy
还是我必须有一个看起来像这样的用户模型:
has_many :schools, :dependent => :destroy
has_many :courses, :dependent => :destroy
has_many :schoolgroups, :dependent => :destroy
has_many :schools, :through => :schoolgroups
has_many :student_users, :dependent => :destroy
has_many :courses, :through => :student_users
has_many :professor_users, :dependent => :destroy
has_many :courses, :through => :professor_users