2012-05-30 14 views
6

के लिए आइसक्यूब https://github.com/seejohnrun/ice_cube का उपयोग करने में मैं देख रहा हूं। मेरा सवाल यह है कि, यदि मुझे किसी भी समय की घटनाओं के भीतर आने वाली किसी भी घटना को प्राप्त करने की आवश्यकता है (कहें, एक दिन या सप्ताह के भीतर), तो उनके माध्यम से लूप की तुलना में कोई बेहतर तरीका है:किसी दिए गए समयावधि

items = Records.find(:all) 
items.each do |item| 
    schedule = item.schedule 
    if schedule.occurs_on?(Date.new) 
     #if today is a recurrence, add to array 
    end 
end 

यह बहुत अक्षम लगता है लेकिन मुझे यकीन नहीं है कि इसके बारे में और कैसे जाना है।

+0

मदद करता है आपने इसके बारे में क्या किया? मैं एक ही स्थान पर अटक गया हूँ? धन्यवाद – loloso

उत्तर

4

यह एक दृष्टिकोण है - लेकिन जो लोग अक्सर अधिक करते हैं, वे अपने शेड्यूल को एक प्रारूप में denormalizing समाप्त होता है जो आसानी से पूछताछ योग्य है।

आपके पास शेड्यूलऑक्सेरेंस जैसे कुछ नामक संग्रह हो सकता है - जिसे आप प्रत्येक सप्ताह बनाते हैं और फिर इसके बजाय क्वेरी करते हैं।

यह दुर्भाग्यपूर्ण है कि इसे इस तरह से काम करना है, लेकिन शेड्यूल के प्रबंधन के आईकल तरीके से चिपके हुए आइसक्यूब को कुछ तरीकों से अपने डेटा को प्रारूपित करने की आवश्यकता है (विशेष रूप से आईसीएल आरएफसी की आवश्यकताओं को पूरा कर सकते हैं)।

मैं हाल ही में कुछ सोच रहा हूं कि इस तरह की अधिक लचीलापन के लिए, इनमें से कुछ प्रतिबंधों को दूर करने के लिए पुस्तकालय कैसा दिखता है - लेकिन यह निश्चित रूप से अभी भी थोड़ा सा है।

उम्मीद है कि यह

+0

धन्यवाद, जॉन। लेकिन क्या होता है जब उपयोगकर्ता अगले हफ्ते कैलेंडर में ब्राउज़ करता है? – 99miles

+0

हो सकता है कि आप शेड्यूल एक्सेरेंसिस उत्पन्न कर सकें क्योंकि उनकी आवश्यकता है? तो अगर कोई अगले सप्ताह के शेड्यूल का अनुरोध करता है, तो सर्वर पंक्तियों को बचा सकता है। मैं वर्तमान में यह पता लगाने की कोशिश कर रहा हूं कि मेरे रेल एपी में दोहराए जाने वाले कार्यक्रम कैसे करें ... – mscriven

संबंधित मुद्दे