質問

私はディールと呼ばれるクラスを持っています。

ディールはvote_scoresを持っています。

I 2よりも大きいことをディールしているどのように多くのvote_scores見たいと思います。

私の推測ます:

ディールでvote_scoresのための

> 2 カウント 終了

んではない、本当に仕事:D

編集ます:

私は、みんなのアイデアを試してみました。しかしなおます:

  
    

Deal.vote_scores

  
vote_scoresはディールの属性ではなく、そのお得な情報の一つの属性ではありませんので、

は仕事をしません。だから私はこれをしなかった場合:

  
    

Deal.find(1).vote_scores

  

#を返します。

vote_scoresはここ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.count(:conditions => ["vote_scores > ?", 2])

カウントはSQLではなくRubyで行われているので、これは速くなります。

編集

さて、私たちはこれを試すことができます:

Deal.find(:all).select {|e| e.vote_scores > 2}.count

これはvote_scores> 2

を有する取引オブジェクトの総数が返され

うまくいけば、あなたが何をしたいのかである。

他のヒント

Deal.find(:すべて:条件=> [ "vote_scores>?"、2])長さ

deal = Deal.first #or whatever... Deal.find(10)
deal.votes.count :conditions => ['value > ?', 2]
すべての投票のために

Vote.count(:conditions => ['value > ?', 2'])
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top