gpt4 book ai didi

mysql - 在 Rails 中动态保存分数排名

转载 作者:行者123 更新时间:2023-11-29 21:26:13 25 4
gpt4 key购买 nike

Rails 新手,我想澄清一下如何动态更新数据库中的内容。

具体来说,我现在正在制作一个测验项目。 Javascript 测验会在服务器端检查每个答案,然后添加总分(因此 6 个正确答案,用户在 score 列中将得到 6 分)。

然后我会显示一个记分牌来对用户进行“排名”。问题是,我并没有真正对它们进行“排名”——不是以一种稍后返回测验表并看到一个用户完成了#1、另一个用户完成了#2 的方式,等等。 ,我正在按总分组织 score 结果。因此,用户会看到基于用户列出位置的排名,但不会存储该排名。

这就是我现在正在做的事情。

在记分板 Controller 中,我将所有测验结果的表格过滤为仅匹配当前测验的分数(由 :category 确定)。

def index
@quizzes = Quiz.where(finished: true, category: session[:category]).order(score: :desc)
end

在 View 中,我将显示按分数组织的测验结果。

 <% @quizzes.each do |Quiz| %>
<tr>
<td></td>
<td><%= quiz.user.username %></td>
<td><%= quiz.user.city %></td>
<td><%= quiz.category %></td>
<td><%= quiz.score %></td>
<% end %>
</tr>

因此输出是一个分数表 (7,6,5..)。

如果我添加了排名列,是否可以创建一个与他们在游戏中的完成位置相匹配的整数值?目前,游戏知道通过匹配Quiz模型中的:category来向相应的用户插入分数。该表是否可以动态存储与该类别匹配的所有结果的“排名”?

最佳答案

你真的想将rank存储在数据库中还是只想渲染它?如果您只想渲染它,那么您可以使用 .each_with_index 方法而不是 .each 并动态渲染它。

但是如果你想存储在数据库中(这对我来说似乎很奇怪),那么你必须编写一小段代码来迭代该类别的测验并更新每个人的排名。实际上,您可以使用后台处理库,例如 Sidekiq 或 Delayed Job。因此,一旦 Controller 收到测验提交调用,它只会更新分数并将排名更新部分移交给后台作业。

关于mysql - 在 Rails 中动态保存分数排名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35497809/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com