我很好奇我将如何实现这一目标。
我正在创建一个在线学习网站。用户可以在此网站上完成一些课程。课程有完整的属性,只是一个布尔值。
我希望每个用户的进度都可以跟踪。所以,假设我在课程展示页面,我希望能够做到
@course.complete?
并为每个用户获得唯一的响应。
现在我有一个可以登录和注销的用户模型,但我没有用户和课程之间的关系。
建立这种关系的最佳方式是什么,以便每个用户都有一个独特的课程?
即。如果用户A已完成课程,那么它将显示为真。如果用户B没有完成课程,那么它将显示错误。
谢谢!
答案 0 :(得分: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