Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/63.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 关于计数的简单IRB问题_Ruby On Rails_Irb - Fatal编程技术网

Ruby on rails 关于计数的简单IRB问题

Ruby on rails 关于计数的简单IRB问题,ruby-on-rails,irb,Ruby On Rails,Irb,我有一门课叫Deal 这项交易有投票权 我想看看有多少选票分数大于2 我猜: 在交易中投票得分>2 计数 结束 真的不起作用:D 编辑: 我尝试了每个人的想法。但请注意: 交易。投票表决 不起作用,因为投票分数不是交易的属性,而是交易的属性之一。因此,如果我这样做: 交易。查找(1)。投票表决 将返回一个# 投票分数在haml中实例化如下: .deal_summary{:id => "deal_#{deal_view.id}"} .score = deal_view.vote_scor

我有一门课叫Deal

这项交易有投票权

我想看看有多少选票分数大于2

我猜:

在交易中投票得分>2 计数 结束

真的不起作用:D

编辑:

我尝试了每个人的想法。但请注意:

交易。投票表决

不起作用,因为投票分数不是交易的属性,而是交易的属性之一。因此,如果我这样做:

交易。查找(1)。投票表决

将返回一个#

投票分数在haml中实例化如下:

.deal_summary{:id => "deal_#{deal_view.id}"}
.score
  = deal_view.vote_scores
在此模型中:

def vote_scores
  self.votes.inject(0){|sum, vote| sum + vote.value}
end

Deal.find(:all,:conditions=>[“vote_scores>?”,2])。length

如果您只想知道有多少,则更有效的代码是:

Deal.count(:conditions => ["vote_scores > ?", 2])
这将更快,因为计数是在sql中完成的,而不是在ruby中完成的

编辑

好的,我们可以试试这个:

Deal.find(:all).select {|e| e.vote_scores > 2}.count
这将返回投票分数大于2的交易对象总数

希望这就是你想要做的

deal = Deal.first #or whatever... Deal.find(10)
deal.votes.count :conditions => ['value > ?', 2]
全体投票

Vote.count(:conditions => ['value > ?', 2'])

这笔交易有多少选票???params的投票分数是多少?我们应该拿什么与2比较?投票得分>2???描述VoteScore模型。它有什么属性?当然没有定义!我更新了评论。首先,你应该为你想知道的票数定义确切的交易。如果我想知道所有交易的票数“票数分数超过2”怎么办?投票。计数(:conditions=>['value>?',2'])看看我编辑过的答案,这就是你想做的吗?太奇怪了!这在我的本地服务器上有效,但在我的实时服务器上,它返回没有“count”方法……这有多奇怪?无论如何谢谢你!是的,我明白了!因为它是一个数组,所以不能使用count。但是,大小合适!如果你想知道的话,你可以随时将计数改为大小。这种方法比我下面的答案效率要低得多。它返回数据库中的所有记录,然后按投票分数进行过滤。