Ruby on rails 在rails中使用AJAX时保存测验信息

Ruby on rails 在rails中使用AJAX时保存测验信息,ruby-on-rails,ajax,cookies,Ruby On Rails,Ajax,Cookies,我正在创建一个测验,我不太确定保存测验的最佳实践是什么 现在我有一个测验数据库,用户可以在其中选择他们想要使用的多个问题类别 i、 e 例如,在开始测验之前,用户可以从多卷问题中选择问题,或者只从一卷问题中选择问题 我想知道的是,在测验进行过程中,存储所选问题的最佳方式是什么。我试图一次只问一个问题,我试图学习更多关于AJAX的知识,以便在问题之间转换。当一个用户回答一个问题,我想有一个分数,随着每个问题的回答而更新,并随机进入下一个问题。如果一个用户开始一个有500个问题的测验,我如何临时存储

我正在创建一个测验,我不太确定保存测验的最佳实践是什么

现在我有一个测验数据库,用户可以在其中选择他们想要使用的多个问题类别

i、 e

例如,在开始测验之前,用户可以从多卷问题中选择问题,或者只从一卷问题中选择问题

我想知道的是,在测验进行过程中,存储所选问题的最佳方式是什么。我试图一次只问一个问题,我试图学习更多关于AJAX的知识,以便在问题之间转换。当一个用户回答一个问题,我想有一个分数,随着每个问题的回答而更新,并随机进入下一个问题。如果一个用户开始一个有500个问题的测验,我如何临时存储他们将要问的问题,当有一个问题被问到时,我可以删除它

我正在学习更多关于cookie的知识,作为一个大概的猜测,我是否能够让一个cookie或会话存储测验中剩余的问题,并在回答后将其删除。我觉得这显然不是答案,但我想不出最好的办法是什么。为了更好的用户体验和我个人的学习目标,我试图避免使用请求-响应结构,但如果您觉得这样做效果更好,请随时插话

编辑:

以下是我对这些评论的印象:

问题表

id question        answer   volume
1  "Generic Quest" "Answer" 1
2  "Generic Quest" "Answer" 2
3  "Generic Quest" "Answer" 1
4  "Generic Quest" "Answer" 3
用户表

id username        
1  "User A" 
2  "User B"
3  "User C"
测验表(这里是我想知道应该如何实现它的地方)我的印象是,当用户开始测验时,它会在该表中创建一个包含测验信息的新条目)


我之所以从评论中倾向于这样做,是因为有三类问题(卷)供用户选择。每个卷都有一个100-300个问题的列表,但是用户可以选择多个卷添加到测验中。如果有一组问题在回答时都列在一个表中,则可以将其从问题id数组中删除。问题id数组显然不会在模块内与问题直接关联,但在调用下一个问题时,它可以找到(问题id)。这是否与您谈论的trh类似?

500个问题对于可靠的cookie或浏览器会话数据来说可能太多了,使用ajax从数据库存储获取数据可能更稳定。所以一个用户测验表可以有一个用户id,一个测验id,一个问题id和一个分数-然后你总是知道下一个问题是什么,所以在这种情况下你需要3个模型在这种情况下,如果我有500个问题,我会让问题id是测验表中所有问题id的数组吗?因此,如果用户创建了一个测验,那么现在用户\u id 1刚刚启动了测验\u id 1,它将选定的问题\u id存储在一个数组中,可用于在提问后随机化和删除。这是一种有效的方法吗?我可能会让每个问题都是独立的,在每个问题被创建或回答后,都会有一个快速的ajax更新,然后在测验模型上使用一种方法,从可用的问题中为该用户选择一个随机问题编辑问题,以显示我在您最初评论后的想法。我很好奇,因为你解释的方式听起来像是当一个用户开始一个有500个问题的测验时,测验表中有500个新条目。我想知道这会有多理想。这取决于回答一个问题需要多长时间。这还取决于测验是更像食谱,还是完全独一无二。配方风格是,如果iyou有一个项目集合,并且用户选择哪些项目将属于他的测验-在这种情况下,也许JSON数据字段是在测验中存储这些项目的好方法,那么您可以在该JSON对象中另外存储状态(无论用户是否看到该项目)--但即使如此,每次回答问题时,您仍在更新数据库
id username        
1  "User A" 
2  "User B"
3  "User C"
id user_id   question_id
1  2         [%w 1 3 2 ]
2  1         [%w 3 2 4] 
3  3         [%w 1 3]