سؤال
لدي فصل يسمى الصفقة.
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'])
لا تنتمي إلى StackOverflow