如何对计算值进行排序?

2024-04-21

我目前正在建立一个 NFL 选秀联盟网站。我有一个用户模型、一个游戏模型和一个连接表,用于捕获每个用户的个人选择。游戏模型具有“结果”属性,其中“W”表示获胜,“L”表示失败,“P”表示推动(平局)。

我在构建排名页面时遇到问题。目前我的用户模型中有两种方法:

def correct_games
  self.games.where(result: "W").count 
end

def total_games
  self.games.where('result != ?', "P").count 
end

Correct_games 方法计算用户的正确选择。 Total_games 方法计算总游戏数(不计算导致推送的游戏)。

然后在我看来,我目前为每个用户提供:<%= number_to_percentage(current_user.correct_games.to_f / current_user.total_games) %>

该划分给出了该用户的获胜百分比(#正确/总选择)。对于我的积分榜,我显然希望按胜率降序排列。问题是排序的唯一解决方案似乎是使用 .order 方法,该方法通常需要数据库中已有某些属性,然后您可以在控制器中调用该属性。

我还尝试将此获胜百分比属性添加到数据库中,但我似乎无法找出每当游戏结果更新时都会更新用户分数的回调。

对于对视图中计算的属性进行排序或将此获胜百分比添加到用户模型中的方法有什么解决方案吗?

提前致谢!


为什么不在模型中而不是在视图中进行计算呢?添加另一个方法,如下所示:

此代码位于您的用户模型中:

def percentage_correct
  ((self.correct_games.to_f / self.total_games) * 100).to_i
end

def self.sorted_by_percentage_correct
  User.all.sort_by(&:percentage_correct).reverse
end

在您看来,这就是您使用它的方式:

<% User.sorted_by_percentage_correct.each do |u| %>
  <div><%= u.name %> has pick percentage of <%= u.percentage_correct %>%</div>
<% end %>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何对计算值进行排序? 的相关文章

随机推荐

  • 如何显示文件解压进度?

    我正在尝试找出一种方法来显示当前进度以及解压缩并将 zip 文件的内容写入磁盘的剩余时间 我目前正在使用此处找到的 ZipArchiver 类http code google com p ziparchive http code googl
  • Python pandas 插入长整型

    我正在尝试在 Pandas Dataframe 中插入长整数 import numpy as np from pandas import DataFrame data scores 6311132704823138710 273 26850
  • NEDB 文件存储在哪里?

    var Datastore require nedb db new Datastore filename testdb db autoload true var doc hello world n 5 today new Date nedb
  • 在 Google 电子表格上,如何称呼 IP 的城市、国家/地区?

    我想知道是否有一个公式 脚本可以在 Google 电子表格上使用来获取 IP 地址数组的城市 位置 也就是说 假设 A 列上的每个单元格都有 100 个 IP 地址 我应该在 B 列上使用什么公式 脚本来获取各自的城市和位置 最简单的方法是
  • Qt 调试器在 mac 上使用错误的 python 版本

    我使用的是 macOS Mojave 10 14 6 我的Qt版本是5 13 1 我的 Qt Creator 版本是 4 10 0 当我设置断点并运行应用程序时 调试器永远不会完成并打印到调试器日志并显示以下错误 因此 据我所知 lldb
  • iOS 复制和粘贴

    我正在创建一个应用程序 以便在我在 iOS 设备上复制某些内容时保存我复制的项目 无论如何 我是否可以创建一个事件 以便每当我从 iOS 设备上的任何应用程序复制某些内容时 它都会将其保存到我的应用程序中 我希望它在我复制文本时触发 以便将
  • 是否可以使用前导和跟踪来设置 Android 字体样式?

    android 字体样式中是否可以有以下内容 Leading http en wikipedia org wiki Leading 文本行之间的垂直空间 名称来自于机械印刷过程中用于分隔文本行的物理铅片 Tracking http en w
  • 什么是 Unicode、UTF-8 和 UTF-16?

    Unicode 的基础是什么 为什么需要 UTF 8 或 UTF 16 我在谷歌上研究过这个问题 也在这里搜索过 但我不清楚 In VSS https en wikipedia org wiki Microsoft Visual Sourc
  • cuda 共享内存 - 结果不一致

    我正在尝试并行缩减以对 CUDA 中的数组求和 目前我传递一个数组来存储每个块中元素的总和 这是我的代码 include
  • Log4J 仅将一个类附加到附加程序

    我需要定期轮询正在运行的应用程序的 JVM 内存统计信息 我正在运行一个服务来执行此操作并将统计信息写入根记录器 我对根记录器的使用与否没有太多控制权 我想要做的是将这些日志消息路由到单个附加程序 该附加程序应该只处理来自该类的日志消息 而
  • 如何在 python apache beam 中展平多个 Pcollection

    应该如何实现位于以下位置的以下逻辑 https beam apache org documentation pipelines design your pipeline https beam apache org documentation
  • 如何快速将 pandas 数据框行转换为ordereddict

    寻找一种快速方法将 pandas 数据框中的行放入有序字典中 而不使用列表 列表很好 但对于大数据集将花费很长时间 我正在使用 fiona GIS 阅读器 行是有序字典 其模式给出数据类型 我使用 pandas 来连接数据 在很多情况下 行
  • SetTimeout() 不会执行该函数

    这是我的代码片段 in VBScript Sub Main Dim timeoutTimer more scripts here more scripts here more scripts here timeoutTimer window
  • Angular js - 幻灯片视图但不是主页 - ng-animate

    我在用着ng动画滑动应用程序视图 因此每个路线都会滑动自己的视图 这是我的简单代码 html div class slide div css Animations slide left 0 slide ng enter transition
  • 在 JavaScript 中从 Base64 字符串创建 BLOB

    我在字符串中有 Base64 编码的二进制数据 const contentType image png const b64Data iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQV
  • 从 webview 获取用户触摸的元素

    大家好 我正在尝试获取用户在 web 视图中触摸的 html 元素 例如 该场景是用户触摸 Web 视图中的某种按钮 应用程序显示该按钮的 html 代码 如下所示 a href index html a 我已经能够获取用户正在浏览的 ht
  • 为什么我在显式调用构造函数时无法引用实例方法?

    有谁知道为什么你可以参考static构造函数第一行中的方法使用this or super 但不是非静态方法 考虑以下工作 public class TestWorking private A a null public TestWorkin
  • 将 UTF-8 编码的转储加载到 MySQL 中

    昨天我为这个问题苦苦思索了几个小时 我在 MySQL 4 1 22 服务器上有一个数据库 编码设置为 UTF 8 Unicode utf8 如 phpMyAdmin 报告 该数据库中的表的默认字符集设置为latin2 但是 使用它的 Web
  • 如何调整 NLTK 句子标记器

    我正在使用 NLTK 来分析一些经典文本 但我在按句子标记文本时遇到了麻烦 例如 这是我从以下内容中得到的片段莫比迪克 http www gutenberg org cache epub 2701 pg2701 txt import nlt
  • 如何对计算值进行排序?

    我目前正在建立一个 NFL 选秀联盟网站 我有一个用户模型 一个游戏模型和一个连接表 用于捕获每个用户的个人选择 游戏模型具有 结果 属性 其中 W 表示获胜 L 表示失败 P 表示推动 平局 我在构建排名页面时遇到问题 目前我的用户模型中