Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何使用Rails计算数据库中的连续元素?_Ruby On Rails_Database - Fatal编程技术网

Ruby on rails 如何使用Rails计算数据库中的连续元素?

Ruby on rails 如何使用Rails计算数据库中的连续元素?,ruby-on-rails,database,Ruby On Rails,Database,有没有一种方法可以查询数据库,只返回根据设置变量连续(及时)发生的元素 具体来说,我需要知道用户连续赢得一场比赛的次数。游戏存储在数据库中,属性为win_loss(1表示赢,0表示输) 我想看看用户是否已经连续赢了3场比赛。在数据库中有这样做的方法吗 如果不是,它在应用程序中会是什么样子 如果这让人困惑,我会提前道歉。请提问,我会尽力澄清。我正在使用RubyonRails。我会采取不同的方法。我会在你的用户模型中添加一列“连续赢”(如果你需要,负数也可以表示连续输) 编辑:如果您确实需要查询它…

有没有一种方法可以查询数据库,只返回根据设置变量连续(及时)发生的元素

具体来说,我需要知道用户连续赢得一场比赛的次数。游戏存储在数据库中,属性为win_loss(1表示赢,0表示输)

我想看看用户是否已经连续赢了3场比赛。在数据库中有这样做的方法吗

如果不是,它在应用程序中会是什么样子


如果这让人困惑,我会提前道歉。请提问,我会尽力澄清。我正在使用RubyonRails。

我会采取不同的方法。我会在你的用户模型中添加一列“连续赢”(如果你需要,负数也可以表示连续输)

编辑:如果您确实需要查询它…

两个问题:

  • 为给定用户选择最新的胜利和最新的松散(可以在一次查询中完成,在SQL
    中选择max(创建时)作为最新的,从游戏组逐赢输赢输赢输输赢输输输输输输输输输输输输输输输输输输输输输输输输输输输输输输输输输输输输输输输输输输输输输输输输输输输输输输输输输输输输输输输输输输输输输输输输输
  • 然后,关于查询(1)的结果:
  • 如果发现了最新的赢和最新的输,则统计具有以下条件的游戏:
    created\u at>latest\u win和created\u at>latest\u lose
  • 如果只发现了最新的赢或输,用户总是赢或总是输,只需计算他的游戏数量
  • 在其他情况下,没有游戏

  • 我建议将该列添加到用户模型中,当您需要显示整个玩家表及其连续赢/输时,它会更好。

    假设我将连续赢/输添加到我的用户模型中。您将如何找到它?抱歉,我不明白您的问题…您想找到什么?即使我添加了column连续赢到我的用户模型,我仍然需要找到连续赢并将其输入到表中。您建议如何操作?您不需要。用户完成游戏时,您将根据其以前的值更新此列。如果他赢了,而连续赢输了,则您将其值增加一倍e、 如果他赢了,而连续的赢或输是负数或等于零,你就把它设置为-1。对于输,你也会做类似的事情。