मैं उपयोगकर्ता नियंत्रक अनुक्रमणिका कार्रवाई के लिए क्वेरी कैशिंग का उपयोग कर रहा हूं।

def index
   @users = User.all
   json_response @users
end

मैंने रेल कास्ट वीडियो का अनुसरण किया और उपयोगकर्ता नियंत्रक में इस तरह जोड़ा।

   def index
     @users = User.cached_data
     json_response @users
   end

उपयोगकर्ता मॉडल में मैं cached_data विधि जोड़ रहा हूँ।

  def self.cached_data
   Rails.cache.fetch([])   // I am not getting how to do caching here and get all the users data
  end

क्या कोई इसे हल करने में मेरी मदद कर सकता है। धन्यवाद

0
Kumar Nikhil 18 मार्च 2020, 20:30

1 उत्तर

सबसे बढ़िया उत्तर

आप Rails.cache.fetch को इस तरह एक ब्लॉक में बनाना चाहते हैं:

    def self.cached_data
      Rails.cache.fetch("all_users", expires_in: 2.hours) do
        # add your query here
        User.all
      end
    end

कैशे_की कुछ भी हो सकता है जो आप चाहते हैं और एक्सपायर_इन: वैकल्पिक है, लेकिन मैं इसे हमेशा वहां जोड़ता हूं जब तक कि कैश_की टाइमस्टैम्प या कुछ और पर आधारित न हो जो स्वचालित रूप से कैश को समाप्त कर देगा।

साथ ही, यह दस्तावेज़ीकरण पृष्ठ अभी भी मान्य है:

https://guides.rubyonrails.org/caching_with_rails.html#low-level-caching

0
johndavid400 18 मार्च 2020, 20:03