मैं एक महंगी (समय लेने वाली) किसी अन्य वेब सेवा मैं बनाने की जरूरत के लिए बाहरी अनुरोध किया है, और मैं इसे कैश करने के लिए करना चाहते हैं। इसलिए मैं आवेदन नियंत्रक में निम्नलिखित रख कर इस idiom, उपयोग करने का प्रयास:मैं रूबी/रेल के साथ एक विधि कैसे कैश करते हैं?
def get_listings
cache(:get_listings!)
end
def get_listings!
return Hpricot.XML(open(xml_feed))
end
जब मैं अपने नियंत्रक सब कुछ में get_listings!
फोन शांत है, लेकिन शिकायत है कि कोई ब्लॉक दिया गया था जब मैं get_listings
रेल कहते हैं। और जब मुझे लगता है कि विधि को देखने मुझे लगता है कि यह वास्तव में एक ब्लॉक उम्मीद करता है, और इसके अलावा यह है कि विधि की तरह दिखता है केवल विचारों में उपयोग के लिए है? तो मैं अनुमान लगा रहा हूं कि यद्यपि यह नहीं बताया गया था, कि उदाहरण सिर्फ छद्म कोड है।
तो मेरे सवाल का, मैं कैसे कुछ इस तरह कैश करते है? मैंने कई अन्य तरीकों की कोशिश की लेकिन इसे समझ नहीं पाया। धन्यवाद!
हाँ के बजाय इसका उपयोग करने के लिए, मैं निश्चित रूप से अनुरोधों के बीच इसे कैश करना चाहता हूं। मैंने इसे डेटाबेस में संग्रहीत करने और इसे मैन्युअल रूप से करने पर विचार किया था, लेकिन मुझे उम्मीद है कि ऐसा करने का एक आसान तरीका है। –
शायद ActiveSupport :: कैश :: स्टोर के लिए दस्तावेज़/एपीआई पर नज़र डालें - जो आप बाद में फिट हो सकते हैं। मैंने अपने साथ काम नहीं किया है, लेकिन मुझे यकीन है कि यहां ब्लॉग पोस्ट हैं या अन्य लोग जिन्होंने इसका इस्तेमाल किया है उदा। memcached के साथ। – nruth