Ruby on rails 关于计数的简单IRB问题
我有一门课叫Deal 这项交易有投票权 我想看看有多少选票分数大于2 我猜: 在交易中投票得分>2 计数 结束 真的不起作用:D 编辑: 我尝试了每个人的想法。但请注意: 交易。投票表决 不起作用,因为投票分数不是交易的属性,而是交易的属性之一。因此,如果我这样做: 交易。查找(1)。投票表决 将返回一个# 投票分数在haml中实例化如下: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_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。但是,大小合适!如果你想知道的话,你可以随时将计数改为大小。这种方法比我下面的答案效率要低得多。它返回数据库中的所有记录,然后按投票分数进行过滤。