سؤال

لدي فصل يسمى الصفقة.

Deal لديها Vote_scores.

أود أن أرى عدد التصويت في صفقة أكبر من 2.

تخميني :

للتصويت _scores> 2 في نهاية العد

لا يعمل حقًا: د

تعديل:

جربت أفكار الجميع. لكن لاحظ أن:

deal.vote_scores

لا يعمل لأن POTT_SCORES ليس سمة من السمات ، بل هي سمة لأحد صفقاته. لذلك إذا فعلت هذا:

deal.find (1) .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 بدلاً من روبي.

تعديل

حسنًا ، يمكننا تجربة هذا:

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

سيعود هذا العدد الإجمالي لكائن الصفقة الذي يحتوي على VOUT_SCORES> 2

نأمل أن هذا هو ما تريد القيام به.

نصائح أخرى

deal.find (: all ،: ظروف => ["pott_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