我的教育应用程序使用单个数据库,并拥有许多用户。我有以下问题:
user1
完成课程(课程模型的列以boolean结尾)后,所有其他用户的课程均结束(finished = true
)。
我希望本课程对于user1已经结束,但对于所有其他用户而言尚未完成。
换句话说,如何将user1
完成的数据库更改与user2
完成的更改区分开?
先谢谢了。
答案 0 :(得分:1)
为此,您可以使用具有users_lesson_progresses
或has_many :through
关联的名为has_and_belongs_to_many
的联接表。
在https://guides.rubyonrails.org/association_basics.html此处查看文档
这个想法是在users_lesson_progresses
表中,对于每对用户和课程,您将有一个单独的行。用户完成课程后,您将为此特定用户和该课程创建一行,并将completed
列值设置为true。或者,在用户开始课程后,您可以将state
表中的users_lesson_progresses
列设置为started
,并在他完成后将该列值设置为finished
。其他任何用户和任何其他课程均相同。那是一个例子。您的方法可能有所不同,但主要思想是相同的。