Rails - 模型关系建议

时间:2018-05-17 08:40:34

标签: ruby-on-rails relational-database

是否可以定义以下关系:

  1. A'学生'属于'组'
  2. A' group'有很多课程'和许多学生
  3. A'学生'有很多课程'通过'组'它属于
  4. 我知道如何再做一个表(添加一个student_course表,其中包含学生的ID及其所属的课程,然后说一个学生has_many:课程,通过:: student_course)。

    换句话说,是否可以通过编辑以下表格来实现它?

    class Student
      belongs_to :group
    end
    
    class Group
      has_many :students
      has_many :courses
    end
    
    class Course
      belongs_to :group
    end
    

2 个答案:

答案 0 :(得分:2)

不确定是否可以使用Rails类方法执行此操作,但您可以手动实现它。

class Student
  belongs_to :group

  def courses
    group.courses
  end
end

class Group
  has_many :students
  has_many :courses
end

class Course
  belongs_to :group
end

答案 1 :(得分:1)

尝试以下关联

student.rb

belongs_to :group
has_many :courses, through: :group

group.rb

has many :courses
has many :students

course.rb

belongs_to :group
has_many :students, through: :group