2012-12-21 20 views
5

मेरे पास मॉडल रजिस्टर है जो विभाग और समूह के आधार पर उपयोगकर्ता की उपस्थिति को चिह्नित करता है। प्रत्येक उपयोगकर्ता का एक विभाग और समूह होता है।रेल 3: रिकॉर्ड कैसे करें

रजिस्टर मॉडल

date:date , departmentid:string , groupid:integer , one:integer , two:integer 
ऊपर क्षेत्रों "एक और दो" टाइम स्लॉट (मान लें: 9-14 से, 14-18) कर रहे हैं के बीच

.Attendance जैसे उपयोगकर्ता वर्तमान दिनांक के अंतर्गत आता है कि चिह्नित कर रहे हैं, ग्रुप , विभागीय। इसलिए उसी दिन गठबंधन, विभागीय और उनकी उपस्थिति के साथ कई प्रविष्टियां होंगी। नीचे

enter image description here

मुझे कोई पता लगाना चाहते हैं

नमूना रजिस्टर तालिका। उपयोगकर्ताओं द्वारा प्रति दिन ध्यान दिया। वर्तमान में मैं कोशिश की है

@register = Register.where(:date=>"2012-12-28").sum(:one) 

यह अच्छी तरह से हो रही है, लेकिन मैं जैसे खोजना चाहते हैं,

@register = Register.where(:date=>"2012-12-28").sum(:one , :two ,:three) 

यह संभव है ....

अग्रिम धन्यवाद।

उत्तर

2

कैसे इस बारे में?

class Register < AR:Base 

... 

    def self.attendee_count(slot) # slot is :one or :two 
    scoped.group(:date).sum(slot) 
    end 

end 

Register.where(:date => Date.today).attendee_count(:one) 
Register.where(:date => Date.today, :departmentid => "DP14").attendee_count(:two) 
+0

उपरोक्त कोड के लिए धन्यवाद। ... क्या यह इस तरह ढूँढना संभव है .. रजिस्टर करें। (दिनांक => दिनांक। आज, विभागीय => "डीपी 14")। Attendee_count (: एक, दो, तीन) ... यदि हां क्या मुझे मॉडल में लिखना चाहिए। – Cyber

+0

कुछ ऐसा है: '[: एक, दो, तीन] .map {| स्लॉट | रजिस्टर। कहीं (: दिनांक => दिनांक। आज, विभागीय => "डीपी 14")। Attendee_count (स्लॉट)}। राशि 'के अनुसार [गणना करने योग्य विधि] (http://api.rubyonrails.org/classes /Enumerable.html#method-i-sum)। हालांकि, यह 3 प्रश्न करेगा। मुझे नहीं लगता कि आप इसे एक ही प्रश्न के साथ आसानी से कर सकते हैं। – systho

0

क्या यह काम करता है?

Department.group (: तारीख) .sum (: एक, दो)

+0

"departmentid" सिर्फ एक क्षेत्र उपयोगकर्ता में table.There उपयोगकर्ता और Department.Hope अपने ऊपर कोड के बीच कोई assosiation केवल मिलेगा है प्रविष्टियों में से कोई, टेबल क्षेत्र में सभी प्रविष्टियों का योग नहीं "एक या दो " – Cyber

+0

क्षमा करें, मुझे गलत समझा गया। मुझे – Rahul

+0

अपडेट करने दें, मैंने अपना पोस्ट अपडेट किया है, यह विभाग नहीं है, यह वास्तव में रजिस्टर है। क्षमा करें .. आपका कोड रजिस्टर.group (: date) .sum (: one,: two) बन जाएगा .. – Cyber