【发布时间】:2012-06-20 02:40:45
【问题描述】:
在我的 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
【问题讨论】:
-
您不能指定多个具有相同名称的关联 (
courses)。不过,不确定这是否是您想要的? -
是的,我想我应该做的是更改两个关系表中“课程”和“学校”id字段的名称,然后指定一个外键
标签: ruby-on-rails ruby ruby-on-rails-3