Rails 3 - 如何通过 order by 从模型中获取行号

2024-02-02

我正在制作一个小应用程序,其中包含排行榜概念。基本上,该模型只是一个player_name 和一个current_score。

我想做的是获取特定玩家的排名,并且考虑到新的分数一直在出现,它需要是动态的。显然,我可以使用 order by 子句进行正常查找,然后我必须循环遍历每个记录。当我有 100,000 行时,效率不是很高。

关于我应该采取什么方法有什么建议吗?

这是表的迁移:

class CreateScores < ActiveRecord::Migration
  def self.up
    create_table :scores do |t|
      t.string  :player_name
      t.integer :current_score

      t.timestamps
    end
  end

  def self.down
    drop_table :scores
  end
end

编辑 作为示例,我有以下内容:

Score.select('player_name, current_score').limit(20)
=> [#<Score player_name: "Keith Hughes", current_score: 9>, #<Score player_name: "Diane Chapman", current_score: 8>, #<Score player_name: "Helen Dixon", current_score: 4>, #<Score player_name: "Donald Lynch", current_score: 9>, #<Score player_name: "Shawn Snyder", current_score: 2>, #<Score player_name: "Nancy Palmer", current_score: 9>, #<Score player_name: "Janet Arnold", current_score: 1>, #<Score player_name: "Sharon Torres", current_score: 9>, #<Score player_name: "Keith Ortiz", current_score: 5>, #<Score player_name: "Judith Day", current_score: 3>, #<Score player_name: "Gregory Watson", current_score: 7>, #<Score player_name: "Jeremy Welch", current_score: 3>, #<Score player_name: "Sharon Oliver", current_score: 7>, #<Score player_name: "Donald Lewis", current_score: 7>, #<Score player_name: "Timothy Frazier", current_score: 7>, #<Score player_name: "John Richards", current_score: 1>, #<Score player_name: "Carolyn White", current_score: 4>, #<Score player_name: "Ronald Smith", current_score: 2>, #<Score player_name: "Emily Freeman", current_score: 9>, #<Score player_name: "Gregory Wright", current_score: 2>]

我怎样才能计算出“唐纳德·刘易斯”的排名?


您可以计算具有较高 current_score 的记录数。您仍然需要按记录执行此操作(或在 sql 中执行子查询)。

class Score < ActiveRecord::Base

  def ranking
    Score.count(:conditions => ['current_score > ?', self.current_score])
  end

end
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Rails 3 - 如何通过 order by 从模型中获取行号 的相关文章

  • 如何验证数值的小数位数?

    我在中间进行了验证 如下所示 validates numericality of shoe size message gt Please input a number 但这还不够 因为用户可以输入一些值 例如 42 222222221212
  • 如何使用 Rails 应用程序中的 s3 在存储桶之间复制文件?

    我目前正在开发一个 Rails 应用程序 尝试将视频从 s3 中的一个存储桶复制 移动到另一个存储桶 但是我在 Rails 应用程序上不断收到代理错误 502 在杂种日志中 它显示 无法分配内存 一旦发生此错误 应用程序就会终止 我们必须重
  • 在代码中的其他地方设计渲染符号=>向上/形式部分

    我刚刚开始使用 Devise 和 Rails3 我已经完成了身份验证并正在工作并了解基础知识 截至目前 在代表我的主页 首页的主控制器中 我有两个链接 一个链接到 注册 gt sign up 另一个链接根据登录 注销 gt sign in
  • 如何在 Rails 6 中禁用 TurboLinks?

    所以我面临这个问题 我的服务器实际上从客户端的请求中检索了正确的数据 并将这些数据发送到浏览器 我可以清楚地看到它可用于浏览器 CTRL SHIFT C gt Network gt my request 但是 浏览器不会刷新 所以我现在看到
  • 如何使用 ruby​​ 的循环和 haml 创建表?

    我正在尝试制作一个如下所示的 html 表 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 我的数据结构是这样的 f ary 1 250 这是我的哈姆尔代码 table border gt 1 tbody tr cnt 0 f
  • 如何使用 Ruby 2.7.0 修复 Rails 的警告消息

    有没有人解决这个问题Ruby 2 7 0 I used rbenv并安装了 Ruby v2 7 0 然后使用创建了一个 Rails 项目Rails v6 0 2 1 目前 通过运行之一 rails s rails s u puma rail
  • 错误“未初始化常量 AWS (NameError)”

    它说 AWS 未初始化 我正在使用 aws sdk core gem 我尝试使用 aws sdk gem 代替 问题仍然存在 这是initializers aws rb 文件 AWS config access key id gt ENV
  • Rails 3 - “无法解析 Yaml”

    我不知道我做错了什么 我尝试运行 rails c 但它只是给了我一个错误 10 分钟前它还在工作 C Ruby192 lib ruby 1 9 1 psych rb 148 in parse couldn t parse YAML at l
  • 如何创建与 ActiveResource 对象的 ActiveRecord 关系?

    假设我正在为一家已经拥有 People 应用程序的出版公司编写一个图书馆应用程序 所以在我的图书馆应用程序中我有 class Person lt ActiveResource Base self site http api people m
  • Twitter Bootstrap 中下拉链接的模态

    我正在尝试从下拉菜单中的链接进行模式启动 该模式似乎已启动 网站变为灰色 但看不到 来自不在下拉列表中的常规链接的模态工作得很好 我对 jquery 进行了愚弄 但由于我是 jquery 的新手 所以没有任何结果 这是我的网站代码
  • Ruby on Rails 3 - 为每个请求重新加载 lib 目录

    我正在为 Rails 3 应用程序创建一个新引擎 正如您所猜测的 该引擎位于我的应用程序的 lib 目录中 但是 我在开发它时遇到了一些问题 事实上 每次更改引擎中的某些内容时 我都需要重新启动服务器 有办法避免这种情况吗 我可以强制rai
  • 在特定页面上执行 javascript 的正确“Rails”方式

    我试图在特定页面上运行 javascript 而我唯一的解决方案似乎是反模式 我有controller js内部生成的assets javascripts 我在用着gem jquery turbolinks 我的代码类似于以下内容 docu
  • 回形针不支持 .doc 文件

    在 Rails 4 0 2 中 我使用回形针 gem 上传文件 但它不支持 doc 文件 在文件上传字段下方 显示一条错误消息 扩展名与其内容不匹配 在模型中 检查内容类型的验证如下 validates attachment content
  • 自定义通用 Rails 错误消息

    我们的 Rails 应用程序被设计为链接到多个客户端数据库的单个代码库 根据子域 应用程序确定要连接到哪个数据库 我们使用液体模板为每个客户定制演示文稿 我们无法为每个客户定制通用的 我们很抱歉 出了点问题 消息 谁能推荐一种方法让我们能够
  • ActiveRecord:向包含的 ON 子句添加条件

    我有一个模型报价和另一个历史报价 一个报价有很多历史报价 现在 我想立即加载一组报价的某一天的历史报价 如果存在 为此 我认为我需要将这一天传递给 ON 子句 而不是 WHERE 子句 以便我获得所有报价 即使在给定日期没有历史报价时也是如
  • Rails 4 的 mobile_fu

    我正在尝试将我的应用程序从 Rails 3 2 13 切换到 Rails 4 在此过程中 我遇到了一个主要障碍 我使用 gem mobile fu 来确定用户是否来自移动设备 该 gem 需要 Railties 3 2 13 但 Rails
  • 使用redirect_to :create 动作

    我正在尝试重定向到另一个控制器的创建方法 但是 我找不到将方法设置为 POST 的方法 这将导致调用索引方法 使用 method gt post只是创建一个新参数 但不会更改 http 方法 有什么想法如何重定向到创建方法吗 您无法在重定向
  • 创建一个默认为零的工厂关联?

    在factories rb 文件中使用FactoryGirl gem 如何创建一个关联默认为nil 的工厂 我正在思考以下几点 Factory define user do factory factory association post
  • 在 mac os Sierra 上,卡在“设置 CocoaPods 主存储库”上

    转移到 mac os sierra 后 我完全格式化了我的 mac 现在每次运行时我都面临安装 cocoapods 的问题sudo gem install cocoapods pre一切都安装得很好 当我尝试安装 Pod 时 终端堆栈打开S
  • rspec 中的模拟方法链

    有一系列方法可以获得user目的 我试图模拟以下内容以返回user in my Factory Girl current user AuthorizeApiRequest call request headers result 我可以模拟该

随机推荐

  • YUI 编辑器 (RTE):插入 HTML 元素并将光标置于其中

    我有个问题 我已经尝试解决这个问题有一段时间了 我已经准备好爆发了 这是我的要求 我在编辑器上方有一个外部工具栏 不是 YUI 的一部分 我想用它来插入 HTML 标签 用户应该能够单击工具栏上的链接 之后可能会发生一些事情 如果有任何选定
  • 在 highcharts 水平条形图中显示所有标签

    我想在高图表上显示所有标签 你可以看到http jsfiddle net valrecx fj6d2 3021 http jsfiddle net valrecx fj6d2 3021 月份不完整 代码仅显示一月 四月 七月等 我想显示所有
  • Ubuntu 终端 - 使用 gnu parallel 读取文件夹中所有文件中的行

    我正在尝试计算 Ubuntu 下一个非常大的文件夹中所有文件的行数 这些文件是 gz 文件 我使用 zcat wc l 计算所有文件中的所有行 而且很慢 我想使用多核计算来完成这项任务并发现this https www gnu org so
  • Kotlin数据类:如果我在编译时不知道属性的名称,如何读取属性的值?

    如果属性名称仅在运行时已知 如何读取 Kotlin 数据类实例中的属性值 这是一个函数 用于从给定属性名称的类实例中读取属性 如果未找到属性 则抛出异常 但您可以更改该行为 import kotlin reflect KProperty1
  • 在 ant 任务中使用 eclipse 类路径

    我想使用 Ant 交付 JAR 文件 如何在 Ant 任务中使用 Eclipse 类路径 问候 托比亚斯 Try ant4eclipse http ant4eclipse sourceforge net
  • 带 IF 条件的 PL/SQL 游标

    我的代码中有以下光标 CURSOR cur1 IS SELECT a b c d FROM EMP BEGIN Stored procedure logic END 该游标正在从 EMP 表获取信息 但我需要改变如下 有一个包含键值对的表
  • 如何跳转到 Visual Studio 源代码管理资源管理器中的文件

    我喜欢 Visual Studio 2010 的 PowerCommands 扩展的 解决方案资源管理器 gt 右键单击 gt 打开包含文件夹 功能 我想要相当于 跳转到源代码管理资源管理器中的位置 功能 如何找出给定打开文件或解决方案资源
  • 突出显示 Lisp 表单的 Emacs 模式

    什么是 Emacs 模式或包 它突出显示 Lisp 表单 更改背景颜色 以便您所在的表单具有一种颜色 外部表单具有另一种颜色 外部表单具有另一种颜色 依此类推 你可能想尝试mwe 彩盒 http www foldr org michaelw
  • 环边太长

    在下面的点图中 之间的边handleClick and onSelect in COLOROPTION太长了 如何将其变成紧密循环 如果也这样就更好了DIV离右边有点远COLOROPTION 循环边是option p4 e gt optio
  • WPF 控件的公共类修饰符

    我正在创建 Windows 应用程序和类库 类库包含名为 InsertForm xaml 的 WPF 控件 InsertForm 包含名为 eUserName 的文本框 我使用以下代码来显示 InsertForm 这样就成功了 但我无法访问
  • 如何安装列出的类型?

    我正在使用带有 Typescript 的库 并收到编译器错误 public components chatlogs ts 25 19 错误 TS2304 找不到名称 Handsontable 似乎有一个打字 typings search h
  • 工厂方法设计模式

    据书中所述 工厂模式的本质是 定义一个接口 创建一个对象 但让子类决定使用哪个类 实例化 Factory 方法让类将实例化推迟到 子类 假设我有一个 Creator 类 class Product this is what the Fact
  • 使用 javascript 获取当前月份的天数

    对于我的网站 我试图获取特定功能当前月份的天数 我在网上看到过获取指定月份的天数的示例 但是我需要获取当前月份的天数并找出该月还剩多少天 这是我设法组合的代码 function myFunction var today new Date v
  • 生产/heroku 失败:WHERE a.attrelid = '"schools"'::regclass

    我在本地环境中添加了一个名为schools并且在开发中运行良好 事实上 它甚至在暂存 heroku 中工作得很好 但在生产中却失败了很多rake db migrate抛出以下错误 我什至无法预编译资产 使用 RAILS ENV 生产 访问我
  • 使用 git 或 gitLab 的持续集成来部署 Angular 应用程序

    我希望通过 Apache 服务器上的 bitbucket 持续集成来部署 Angular 5 应用程序 现在因为我是该领域的新手 所以我不知道执行此操作的可能选择 比如我们是否需要将 webpack 与 Jenkins 集成 或者我们是否需
  • Node.js 中的 JSON 对象是全局的吗?

    我似乎找不到 Node js 的 JSON parse 的文档 我只是看到它散落在各种脚本周围 我想知道 它从哪里来 是否有某些回调使其可用 或者它是一个全局对象 谢谢 马特 穆勒 它内置于 V8 中 这是他们的实现的链接 http cod
  • 数据网格复选框自动化

    我有一个带有复选框的数据网格 当我单击单元格时 我希望在选择包含该复选框的单元格时自动选中该复选框 它现在所做的是我需要选择单元格然后单击复选框 这对我们来说非常烦人
  • 如何在 Javascript 中使用 onPageLoad?

    我尝试使用 onPageLoad function alert hi 但这行不通 我需要它作为 Firefox 扩展 请问有什么建议吗 如果你想在普通 JavaScript 中执行此操作 只需使用window onload事件处理程序 wi
  • 如何制作 TortoiseSVN diff .dot 和 .dotx Word 模板文件

    TortoiseSVN 具有区分 Microsoft Word 文档修订版的惊人能力 这显然是通过以下脚本实现的 C Program Files TortoiseSVN Diff Scripts它调用 MS Word 进行比较 而不是使用
  • Rails 3 - 如何通过 order by 从模型中获取行号

    我正在制作一个小应用程序 其中包含排行榜概念 基本上 该模型只是一个player name 和一个current score 我想做的是获取特定玩家的排名 并且考虑到新的分数一直在出现 它需要是动态的 显然 我可以使用 order by 子