我目前正在用rails 4构建一个学习管理系统,我正在努力提高我的技能。我不知道如何实现下面的迭代。
每个学生都有很多课程,每门课程都有很多课程,因此每个学生都有很多课程。
模型:用户课程课程
我要做的是实现一个跟踪进度系统,这样当用户看完视频后,他点击下一个视频,然后就可以在他们的个人资料页面上看到进度。
我应该如何实施它,有什么建议吗?跟踪过程对我来说是真正的痛苦,我不知道该如何做!对不起,如果我不够清楚的话。任何帮助都将不胜感激!谢谢!
发布于 2015-04-28 13:30:03
您应该根据现实世界中的实体以及它们之间的关系,为类绘制一个简单的UML图。首先要确保您有所有的类来建模课程的实际结构。“课程”和“课程”真的足够了吗?有那么简单吗?
然后,添加新的类来跟踪用户的进度。我会在所有这些类名前加上相同的单词,比如“查看”。这是尽可能简单的(可能太简单了,我怀疑)。我假设一堂课包含了一段视频,所以当他们看完视频后,他们就完成了这节课。它可能没有那么简单,但你没有指定任何其他要求(如课程作业)。
class Course
has_many :lessons
class Lesson
#fields: course_id
belongs_to :course
class User
has_many :viewed_lessons
has_many :viewed_courses
class ViewedLesson
#fields: user_id, lesson_id, completed(boolean)
belongs_to :user
belongs_to :lesson
class ViewedCourse
#fields: user_id, course_id, completed(boolean)
belongs_to :user
belongs_to :course
当用户注册一门课程时,您会为他们创建一个viewed_course记录。您可以通过查找没有viewed_lesson的第一课和标记为已完成的用户来确定下一课是哪一课。
当他们完成视频时,您将相应的课程标记为已完成,这意味着上面的逻辑将提示下一个视频。当课程中的所有课程都完成时,您也可以将viewed_course标记为已完成。
https://stackoverflow.com/questions/29920012
复制相似问题