0

我很好奇我将如何实现这一点。

我正在创建一个在线学习网站。该网站上有几门课程可供用户完成。课程具有完整的属性,它只是一个布尔值。

我希望每个用户的进度都是可跟踪的。所以假设我在课程展示页面上,我希望能够做到

@course.complete? 

并为每个用户获得独特的响应。

现在我设置了一个可以登录和注销的用户模型,但我没有用户和课程之间的关系。

建立这种关系以使每个课程对每个用户都是唯一的最佳方式是什么?

即,如果用户 A 完成了课程,那么它将显示为 true。如果用户 B 没有完成课程,则显示为 false。

谢谢!

4

1 回答 1

1

我会这样做

class Student < ActiveRecord::Base
  has_many :course_enrollments
  has_many :courses, :through => :course_enrollments
  # code here
end

class Course < ActiveRecord::Base
  has_many :course_enrollments
  has_many :students, :through => :course_enrollments
  # code here
end

class CourseEnrollment < ActiveRecord::Base
  belongs_to :student
  belongs_to :course
  # code here
end
于 2013-06-12T19:19:06.310 回答