मैं अपने आवेदनकैसे ऑन रेल्स 3
@categories = Category.joins(:posts).select('distinct categories.*').order('label')
में निम्न क्वेरी इस क्वेरी हर पृष्ठ दृश्य पर लोड हो जाता है है रूबी में एक प्रश्न कैश करने के लिए के बाद से श्रेणियों हर पृष्ठ पर प्रदर्शित होते हैं। यह मेरे लिए गन्दा लगता है क्योंकि श्रेणियों की सूची अक्सर अद्यतन नहीं हो रही है। क्या सिर्फ क्वेरी को कैश करने का निफ्टी तरीका है? मैंने कोशिश की है
Category.cache do
@categories = Category.joins(:posts).select('distinct categories.*').order('label')
end
लेकिन मुझे अभी भी विकास लॉग में डेटाबेस से हर बार लोड होने वाली क्वेरी दिखाई देती है।
@categories = Rails.cache.fetch('categories', :expires_in => 24.hours) { Category.joins(:posts).select('distinct categories.*').order('label') }
कौन सा केवल देखने के लिए कि निम्न डेटा ब्लॉक 'श्रेणियों' कैश किए गए और समय सीमा समाप्त नहीं पढ़ा जाएगा:
कैशिंग विकास मोड में डिफ़ॉल्ट रूप से बंद कर दिया है। इसे चालू करने के लिए 'कॉन्फ़िगरेशन/वातावरण/विकास.आरबी'' में देखें। –
@ डगलस एफ शीयरर यह सेटिंग नियंत्रित करती है कि रूबी कक्षाओं को प्रत्येक अनुरोध के साथ कैश किया गया है या फिर से लोड किया गया है, भले ही सक्रिय रिकॉर्ड की क्वेरी कैश सक्षम न हो। –